Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

TIme::Moment+Time::Strptime=

Kansai.pm #14

  • Als Erste(r) kommentieren

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と組み合わせると最強 • 💪 💪 💪 💪 💪 💪 💪 💪 💪 💪 💪 💪 💪 💪 💪

×