Upload
shigure
View
452
Download
3
Embed Size (px)
Citation preview
Twitter Client for ZSH (2)Dentoo.LT #3ゆたか /@tmyt
自己紹介• Twitter @tmyt• 社会人 2 年目
• プログラミング言語• C++, C#, Object Pascal, ZSH
• シェル• ZSH
• エディタ• VIM
• 国立じゃない方の電通大の出身です
前回
Dentoo.LT #2
今回紹介するのは
こちら
tw.zshsha1.zshjson.zshzss.zsh
sha1.zsh
sha1.zsh• Pure ZSH 実装の SHA1• OpenSSL その他外部ライブラリは不要
• Mac についてる shasum コマンドと比較して% time (seq 1 1000| shasum)0.19s user 0.03s system 95% cpu 0.229 total
% time (_sha1_hash "$(seq 1 1000)")33.36s user 65.04s system 92% cpu 1:45.83 total
353 倍遅い
json.zsh
json.zsh• Pure ZSH 実装の JSON パーサ• 外部ライブラリなどすべて不要• 必要なものは ZSH だけ!!
• Node.js と比較して% time (cat hoge.json | node)0.05s user 0.01s system 101% cpu 0.061 total
% time (_json_parse_value ) 11.93s user 21.67s system 94% cpu 35.627 total
584 倍遅い
zss.zsh(Zsh Shared Storage)
zss.zsh• Sub shell の境界を越えて値を保存するライブラリ• JSON パーサの解析位置を保持するために Sub shell を超え
て値を共有する必要があった• 親→子への伝播はされるが、子→親はできない
• ZSH には TCP/IP を扱う機能があるので Client/Server モデルで壁を乗り越えてみた
tw.zsh
tw.zsh• Pure ZSH 実装の Twitter クライアント• Timeline へ Post する機能しかありません• Timeline 取得するサンプルもあります
前回と比較して• curl が不要になりました• JSON パーサが添付されました• SHA1 ハッシュを単独で計算できるようになりました
そして…
% time ./tw てすとめっせーじ./tw てすとめっせーじ 2.16s user 3.32s system 88% cpu 6.172 total
1 秒遅くなった!!
github.com/tmyt/tw