元スレ+ JavaScript の質問用スレッド vol.142 +
JavaScript覧 / PC版 /みんなの評価 :
902 = :
最近のJSエンジンはファイルをストリーミングでパース・評価できる
それを前提として圧縮していないとその恩恵が受けられない
通信速度も高速化しててせいぜい10ms程度しか節約できないのなら圧縮する意味がなくなる
だから近年の常識としては基本的にMB単位のファイルだけをBrotliで圧縮できる場合だけする
gzipは2G/3Gスマホのためには有効だからまだ世界的には標準だが、
日本では害の方が大きいので全部で使うくらいなら全部で使わない方が良い
904 = :
つまりこういうことね
最近のJSエンジンはファイルをストリーミングでパース・評価できる
それを前提として圧縮していないとその恩恵が受けられない
ウェブで使われるgzip圧縮はそれを前提として圧縮しているため恩恵が受られる
907 = :
そもそも展開時にストリーミングができない圧縮形式なんてあるのか?
圧縮時は全体眺めて同じデータを探す必要があるが
展開時は前から処理できるだろ
908 = :
>>908
一般的にデータ部分の展開は順次できるけど
まずデータ部分の場所を特定するのに一番最後を見ないといけない形式も多い
ZIPがその代表例
圧縮する側に立って考えてみたら分かる
圧縮する前に圧縮後のデータ量を知ることはできない
ファイルを順次圧縮して追加していって最後まで終わった段階で
ようやくファイル構造が確定するのでそれを末尾に乗せることができる
1ファイルだけを圧縮するgzipでもCRC32がデータの後に着くのが普通なので
ファイルが壊れているかどうか気にしないのでなければ受信途中で読み始めることはしない
だから普通はHTTPのチャンク機能を使ってデータを分割する(HTTP2ではまた別の機能)
ただし各チャンクのサイズを小さくするとオーバーヘッドが多くなりすぎるし、
かといってサイズを大きくすると、ストリーミングの効果が薄くなるので難しい
909 = :
へぇー詳しい
910 :
>>909
勉強になりました
913 = :
>>909
> 圧縮する前に圧縮後のデータ量を知ることはできない
> ファイルを順次圧縮して追加していって最後まで終わった段階で
> ようやくファイル構造が確定するのでそれを末尾に乗せることができる
先頭に入れても良いのでは?
914 = :
十分大きいバッファをメモリに持っておいて圧縮が終わってからディスクに書き込むのならできるだろうな
915 = :
もしかして今の若い人は一般的なファイルシステムだとファイルは末尾に追記するか真っ更から書き直すかしかないってことを知らないのだろうか
頭に追加しようと思ったら全部読んで退けておいて書き換えないといけないってことは常識かと思ってた
916 = :
数バイトオフセット取って書きはじめて最後に先頭にポインタ戻してサイズ書き込めばいいだけじゃんw
Cのファイル操作の基本でできるけどwww
917 = :
つーか、圧縮ファイルで先頭に何を書きたいのかわからん
ファイルの数とかか?そんなもん最初に書き込む領域数バイトを
ヘッダ領域として予約するだけじゃん
918 = :
当然各ファイルのデータ毎に(ほぼ)固定長のヘッダーはあるが
それだけではファイルの一覧を見るのに頭からお尻まで舐めないといけない
さらに、10000個目のファイルを見たいときに10000個辿らないといけない
だから、ファイルのデータ以外の情報がどこかに局所的に固まっていないといけないのだが
それを先頭に持ってくるのはいろんな理由で難しい
最初10個のファイルを書き込む予定が9個になるかもしれないし
5個の時点で設定容量に達して複数アーカイブに分割するかもしれない
そもそも圧縮を始める前に全てのファイル情報を読まないといけない
一方もし末尾に置くのであれば、この先のことを考えずに
今圧縮するファイルのことだけを考えて次から次へと圧縮を進めることができる
要するに圧縮がストリーミングでできる
そして全てのファイルの圧縮が終わった後にそれまでの結果を末尾に書けばいいだけだから楽だし安心
919 = :
すべてが終わったあとに予約しといた先頭に書けばいいだろ
920 = :
まさにそれがし難いという理由を書いたんだよ
921 = :
いつもの恥の上塗りっ子
922 = :
>>919
> 当然各ファイルのデータ毎に(ほぼ)固定長のヘッダーはあるが
> それだけではファイルの一覧を見るのに頭からお尻まで舐めないといけない
1つのファイルだけを圧縮する、httpでの配信でそれなんか関係あんの?
ファイルの頭に最初に処理するファイル名だけを格納するだけじゃん
925 = :
だから、ヘッダー・データを別々に作って、
データだけを一旦、ファイルに保存しておいて、
ヘッダーとデータを、cat で連結させて、新しいファイルを作る
でも、これは、ファイルコピーばかり、やってる事になるw
データが大きいと、無駄が多い
928 = :
豊富なメソッドがあれば便利っちゃ便利だけど
ぶっちゃけ、ゴリゴリにアルゴリズムが必要な場面以外ではありがたみが薄いし
ゴリゴリに必要な場面では最適化のために使いにくい
930 = :
>>930
http://nodejs.org/docs/latest-v13.x/api/fs.html
932 = :
>>932
だとしたらWebの基礎の基礎を全く理解してないことになるのでAPIの話をしても無駄だよね
934 = :
もう来んなよ
こんな所に
935 = :
日曜プログラマでCanvasでRPGとか糞バカだな
RPGとかこの世で作るのが一番難しいものの一つだろ
シナリオ・音楽・絵、マップそれらを全て他所から持ってくるにしても苦労するのに
それに加えてCanvas使ってプログラミングとかもはや273番目の地獄だわ
名付けてCanvasRPG地獄だ
そんなんができる根気と能力があったら日曜プログラマどころか
起業して日本のスティーブ・ジョブズになれるっつうの
いかに無謀なことしてるかよく考えたほうが良いぞ
がんばりな
936 = :
そうかあ?
小学生のクソ馬鹿だった俺でも
すごーくシンプルなのはBasicでなんとか出来たから
意外となんとかなるんじゃない?
根気はいると思うけど
937 = :
別に挑戦する分にはいいんじゃないの
生canvasはやめてライブラリの使用をおすすめするけど
938 = :
なんでスティーブ・ジョブズなん?
全く畑が違うやんw
939 :
正直スティーブ・ジョブズのどこがすごいか分からん。
たまたまiPhoneが出たときその会社のトップだっただけじゃないの?
頭はいいのだろうか?ちゃんと微分方程式の難しいの解けたり物理学の面白さを語れるんだろうか?あるいはプログラミングならデザインパターンをどう適応するのかちゃんと根本的な理解をしているのだろうか?
オレはこれらすべてできるが。
940 = :
自分を有名にする能力だけは間違いなくあるだろうな
941 = :
>>940
恥ずかしいから静かにしてたほうがいいよ
942 = :
>>940
プロ野球選手にどこがすごいの?レジ打ち遅いじゃんって言ってるようなもんだろw
944 = :
だったのかって、俺は読んでそうかなと思ったぞ
分かりにくい質問だったが、Nodeの質問が来る確率なんて極めて小さいでしょ
C10Kとか言ってNodeムーブメントが起きてた頃はちらほら質問が来てたが
そのころでもNodeやサーバーサイドと言わず当たり前のように質問する人はいなかったと思うぞ
948 = :
>>947
正規表現は「単語はアルファベットの並び」などという定義をするためのもので
この順番に単語が出てきたらこれは動詞みたいな意味を定義するものではありません
つまり正規表現でCSVを解釈することはできません
CSVなどの文字列の意味を解釈するために使う道具が正規表現であって
CSVなどの意味を解釈するものはパーサーと言うんです
あなたはパーサーを作らなければいけないのに
それを作らずに正規表現でやろうとしています
949 = :
>>948
>>949
> 勉強のためにCSV読み込みを自作
そうですね、正規表現の勉強も兼ねてライブラリなしで読み込みたい感じです
JSfiddleを見てもらうとわかると思いますが
クォートの範囲を取ることは出来てます、あとクォートされてない文字列を取ることも
ただ、文字列がない部分を配列に格納することだけが出来ないので悔しくてこちらで聞かせて頂きました…
950 = :
>>950
正規表現でやる以上
マッチしないところは無理だわな
先頭から1文字ずつ追いなされ
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.142 + (926) - [100%] - 2019/12/23 13:15
- + JavaScript の質問用スレッド vol.141 + (881) - [97%] - 2021/4/19 9:00
- + JavaScript の質問用スレッド vol.102 + (1001) - [97%] - 2012/9/11 17:30
- + JavaScript の質問用スレッド vol.112 + (1001) - [97%] - 2013/11/27 16:46
- + JavaScript の質問用スレッド vol.132 + (1001) - [97%] - 2018/4/19 11:00
- + JavaScript の質問用スレッド vol.122 + (116) - [97%] - 2018/5/2 18:30
- + JavaScript の質問用スレッド vol.122 + (1004) - [97%] - 2015/2/14 4:45
- + JavaScript の質問用スレッド vol.140 + (1001) - [97%] - 2019/9/19 10:45
- + JavaScript の質問用スレッド vol.141 + (1001) - [97%] - 2019/9/22 23:15
- + JavaScript の質問用スレッド vol.143 + (753) - [97%] - 2020/4/19 5:00
- + JavaScript の質問用スレッド vol.144 + (288) - [97%] - 2020/5/17 20:00
- + JavaScript の質問用スレッド vol.123 + (966) - [95%] - 2020/10/20 2:30
- + JavaScript の質問用スレッド vol.115 + (1001) - [95%] - 2014/5/29 16:16
- + JavaScript の質問用スレッド vol.121 + (1001) - [95%] - 2015/1/1 18:30
- + JavaScript の質問用スレッド vol.121 + (1001) - [95%] - 2022/11/29 16:30
- + JavaScript の質問用スレッド vol.120 + (1002) - [95%] - 2014/11/8 1:15
- + JavaScript の質問用スレッド vol.119 + (1002) - [95%] - 2014/10/3 15:30
トップメニューへ / →のくす牧場書庫について