Qiitaの11日目の記事だ。0.4.0と、R16以前でも動く0.3.5をリリースした。テストされようとしているくらいだろうか(ちょっと頑張ったけど、結局うまく動いてない...)。いう製品の開発リーダー的なことをやりつつ、新製品Machiの開発もやっている。毎日ひたすらコードを書いたり設計したり議論したり、ちょっとだけテストしたり、という感じ。実装が入ってしまった。いう、先日若干界隈を賑わせた製品の下回りでデータのシリアライザとして利用されている。スキーマ的なのをつけられるようになって、それがMsgPackでシリアライズされてLevelDBに入るようになった。カラムナなデータ構造になったわけではないが、クエリの一部をLevelDBの直前のC++のところまでプッシュダウンすることで効率化されている。LevelDBにはsnappy圧縮が入ってるんでMsgPackの小ささ自体がそこまで貢献してるわけじゃないけど、まあJSONよりはマシかあ、PBもスキーマいるし大変だよねえといったところだ。入社前に書いたコードがついに仕事で役立っている模様(なにせ私は直接関わっていないどころか知らないところでほとんど話が進んでいた)。ちなみにNIF版の開発は全然やってない。テストを追加QuickCheckはすばらしい。化するにあたってあまりノウハウがなかったのだが、そこは想定外だがプラグインがあったので大した苦労もなく導入できた。書いたコードは本当に一部だけだった。eqcだけでビルドとテストができるようになっている。サイトを検索してもらうと見つかるはずだ。メモリ使いすぎるとすぐ死ぬ(ので肝心のShrinkはあまり使えない)とかまあQuviqがあんまりやる気ないことは百も承知だが、ないよりはマシだ。GitHubがわりと面倒くさい。Printableな文字列をそのままシリアライザにツッコミたいよね。Functionを指定させるってのがいいのかなあという気になりつつはあるけど、文字列かどうかを判定させるオーバーヘッドがパフォーマンスにどれくらい効いてくるのか未知数ではある。したらどうなるかなというのはちょっと気になっている。間に挟むだけだと意味がなくてプログラミングは割と面倒くさいというか、どの粒度でバイナリを切ってリストにするとメモリアロケータを使う頻度を最小化できるかという問題になると思う。おべんきょするところから始めるべきだと思うんだけど、アロケータ周りをいじるとシステム全体に影響がありそうなのが気になる。いう問いを空中に投げてこの記事を締めたい。2014の23日目の記事です。(1)Miscプライバシーポリシーお問い合わせフォームはてなブログはてなブログをはじめよう!kuenishiさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。