JSON ファイルを逐一 strlen して sscanf する実装、何のため?
Conversation
Notices
-
ヴァ (sota_n@social.mikutter.hachune.net)'s status on Thursday, 18-Mar-2021 02:41:48 JST
ヴァ
-
まちカドおるみん御嬢様 (orumin@mstdn.maud.io)'s status on Thursday, 18-Mar-2021 02:41:47 JST
まちカドおるみん御嬢様
-
まちカドおるみん御嬢様 (orumin@mstdn.maud.io)'s status on Thursday, 18-Mar-2021 02:42:11 JST
まちカドおるみん御嬢様
-
まちカドおるみん御嬢様 (orumin@mstdn.maud.io)'s status on Thursday, 18-Mar-2021 02:51:03 JST
まちカドおるみん御嬢様
@sota_n すでに C 文字列としてメモリに読み込んだ 10MB の JSON データについて、生の文字列なのでこれをゲームで利用するデータ構造に格納するために JSON を parse するのですが、1. 既存の JSON parser ライブラリとかじゃなくて独自実装で2. いちいち sscanf(3) するのもまああれだとしてもそれはまだ良くて、その sscanf(3) 実装がなぜか毎度毎度 10MB の文字列を strlen(3) してた
-
ヴァ (sota_n@social.mikutter.hachune.net)'s status on Thursday, 18-Mar-2021 02:51:04 JST
ヴァ
@orumin これは何のためか、というところなんですが、 JSON ファイルをメモリに読み出すためって事になるんでしょうか?
-
まちカドおるみん御嬢様 (orumin@mstdn.maud.io)'s status on Thursday, 18-Mar-2021 02:52:37 JST
まちカドおるみん御嬢様
@sota_n sscanf(3) で文字列から文字をスキャンするのに、スキャンする数とか数えるのに strlen(3) を使っている上にその結果をキャッシュしたりもしてない、みたいな素朴すぎる実装なのがアレ、みたいなやつっぽい
-
まちカドおるみん御嬢様 (orumin@mstdn.maud.io)'s status on Thursday, 18-Mar-2021 02:53:36 JST
まちカドおるみん御嬢様
@sota_n あとこの JSON のパース結果についても、linked list に CRC32 か何かでハッシュつけたやつに格納してて、格納するときに重複がないかどうかリストを全要素走査してハッシュをひとつひとつ見てくみたいなクソデカループがあったり、色々と実装が初歩的なひどさだったというだけのアレ
-