Base64モジュール


投稿ツリー



前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2010/10/10 3:48
tama  一人前   投稿数: 111
std.base64が既に存在していますが,ライセンスがBoostじゃないし,参照しているRFCが古いし,柔軟性とか微妙かなぁと思ったので置き換え目的で書いてみました.

scrap.base64.d

とりあえず一日くらい置いてからPhobosに提案しようかなぁと思ってます.気になる所があったら指摘して頂けたらと思います.

一つ注意点があって,std.base64自体はメモリ消費量と速度を考えるとバランスのいい実装だと思います.これはポインタとか使ってかなりガリガリやってるからで,その代わりコンパイラによる支援をほとんど得てません(ベンチ取った結果ですが).
なので,-O -releaseを省くとこのモジュールはstd.base64に速度で負けてしまいます.そのかわり付けたら上回るはずです.

ushortとか使って計算量を減らす方法もあるようですが,メモリ使用量がかなり増大してしまうので,今回は見送ってます.Fastバージョンで実装してもいいかもしれませんが面倒なので(オ
投票数:28 平均点:3.93
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/10/10 11:27 | 最終変更
tama  一人前   投稿数: 111
decode処理で毎回ifで分岐していたのを,テーブルを使う方法に修正しました.原因はenumで作っていたことらしく,immutableにすると更に高速化できました.

正直enumが遅過ぎるので,これどうにかしてくれないとenum with 配列 or 連想配列はかなり使いくいなぁという感じです.

** 追記
そもそもenum定数はアドレスが取れないし変数とは違うわけで,その場で毎回構築するのは仕方ないかなと思い直しましたまる
投票数:36 平均点:2.50
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/11/2 23:54 | 最終変更
tama  一人前   投稿数: 111
http://www.dsource.org/projects/phobos/changeset/2119

無駄に時間が掛かりましたがコミットしました.Danielが中途半端にレスした状態になっているので,英語の修正などは後々入るかもしれません.ただ,設計レベルで変わることはないとは思います.
投票数:26 平均点:5.38
返信する

このトピックに投稿する

題名
ゲスト名
投稿本文

  条件検索へ


メインメニュー

ログイン

ユーザー名:


パスワード:





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

Menu