Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

TIme::Moment+Time::Strptime=

1,548 views

Published on

Kansai.pm #14

Published in: Technology
  • Be the first to comment

TIme::Moment+Time::Strptime=

  1. 1. Kansai.pm #16 id:karupanerura Time::Moment + Time::Strptime = 💪
  2. 2. About me • Kenta SATO (id:karupanerura) • Perl/Go/Swift/Kotlin/Java/Crystal/C99/etc.. • Gotanda.pm Author • Senior Engineer at Mobile Factory, Inc. • WebApp/iOS/Android/Operation/etc..
  3. 3. 日時処理
  4. 4. 日時処理 • 日付や時刻に関する処理 • 単純な計算にならない • タイムゾーン • うるう年/うるう秒 • 月またぎ
  5. 5. タイムゾーン • 時差を管理する概念 • UTC(世界標準時)からの時差=>オフセット • 地域ごとに決まっている • (現在の)日本だったら全域JST-9(Asia/Tokyo) • サマータイムもタイムゾーンで管理
  6. 6. Yokohama.pm #10 http://www.slideshare.net/karupanerura/yokohamapm-10
  7. 7. Time::Moment
  8. 8. Time::Moment • 日時処理モジュール • シンプル • 高速 • 不変性
  9. 9. シンプル • 固定オフセットのみをサポート • サマータイムなどは考慮しない • 秒ベースで計算
  10. 10. 高速 • 基本的に全ての処理がCで書かれている • c-dt というCライブラリのPerlバインディング
  11. 11. 不変性 • 同じインスタンスは必ず同一の日時を指す • 副作用が最小限になる
  12. 12. どれくらい速いか => DEMO
  13. 13. 弱点
  14. 14. Time::Momentの弱点 • 任意フォーマットの日付のparseが不可能 • from_stringはあるがフォーマットは固定 • システムのタイムゾーン/ロケールに依存
  15. 15. Time::Momentの弱点 • 任意フォーマットの日付のparseが不可能 • from_stringはあるがフォーマットは固定 • システムのタイムゾーン/ロケールに依存 ↑ Time::Strptime ↑DateTimeX::Moment
  16. 16. Time::Strptime
  17. 17. Time::Strptime • 拙作の汎用のstrptime実装 • Pure Perlで動く • 高速 • 昨日、1.00が出ました
  18. 18. YAPC::EU 2015http://www.slideshare.net/karupanerura/optimize-perl5-code-for-perfomance-freaks
  19. 19. Time::Momentと組み合わせる • Time::Momentでstrptimeできるようになる! • 弱点がひとつ解決!
  20. 20. DEMO
  21. 21. まとめ • Time::Momentは良い • Time::Strptimeと組み合わせると最強 • 💪 💪 💪 💪 💪 💪 💪 💪 💪 💪 💪 💪 💪 💪 💪

×