返信する: 雑談



オプション

参照

Re: 今ホットな話題
投稿者: tama 投稿日時: 2010/10/13 15:29
std.base64ですが,byLineとかのチャンクに対してエンコード / デコードできる機能はつけました(これ自体はバッファリングとか自動化できるのでまぁあってもいいかなという感じです).今問題になってるのはchar一文字ずつ取り出すRange対応ですね.

俺自身はこれにはかなり懐疑的で,何でもRange症候群が発症しているんじゃないかとちょっと乗り気じゃないです.現にDanielの実装を見れば,内部にバッファを持っていてかなりややこしくなってます.で,これを使って'decode(enode(cast(ubyte[])"f"));'と同じ結果のコード(encode -> buffer確保 -> copy,decode -> buffer確保 -> copy)でbenchmark!をしてみると,470msecと1240msecくらいで,約3倍弱くらい遅くなってます.
確かに一文字ずつのRangeがあればstd.algorithmとかで使い回せるメリットはありますが,Base64自体にそこまでの汎用性が必要かと言われると…

という感じなので,Encoderの一つしてサポートしたいなというのが現状です.Danielはencode / decodeがRangeを返すべき,という考え方っぽいですが,Base64を使う側からすればalgorithmとかと一緒にしないとまともに結果を取得できないというのはなんかアホらしいので,この辺はなんとかガードしたい所です.
メインメニュー

ログイン

ユーザー名:


パスワード:





パスワード紛失  |新規登録

Menu