TIme::Moment+Time::Strptime=

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

Recommended

DateTimeX::Moment by
DateTimeX::MomentDateTimeX::Moment
DateTimeX::Momentkarupanerura
934 views61 slides
AWSで透過プロキシをやってみた by
AWSで透過プロキシをやってみたAWSで透過プロキシをやってみた
AWSで透過プロキシをやってみたkuro kuro
3.9K views21 slides
Java hotspot vmに おけるGCの振る舞い by
Java hotspot vmにおけるGCの振る舞いJava hotspot vmにおけるGCの振る舞い
Java hotspot vmに おけるGCの振る舞いDi Ai
1.8K views10 slides
LionでOpenMP by
LionでOpenMPLionでOpenMP
LionでOpenMP14159265
1.8K views9 slides
OSSの敵になるのもいいじゃない by
OSSの敵になるのもいいじゃないOSSの敵になるのもいいじゃない
OSSの敵になるのもいいじゃないlestrrat
69.4K views53 slides
最近流行りのビルドツールとは by
最近流行りのビルドツールとは最近流行りのビルドツールとは
最近流行りのビルドツールとはTakahiro Maki
906 views13 slides

More Related Content

More from karupanerura

Perl5 VS JSON by
Perl5 VS JSONPerl5 VS JSON
Perl5 VS JSONkarupanerura
1.3K views33 slides
コンテキストと仲良く by
コンテキストと仲良くコンテキストと仲良く
コンテキストと仲良くkarupanerura
3.3K views38 slides
The plan of Aniki 2.0 by
The plan of Aniki 2.0The plan of Aniki 2.0
The plan of Aniki 2.0karupanerura
4.4K views36 slides
Aniki::Internal by
Aniki::InternalAniki::Internal
Aniki::Internalkarupanerura
7.9K views18 slides
The Crystal language *recently* update by
The Crystal language *recently* updateThe Crystal language *recently* update
The Crystal language *recently* updatekarupanerura
776 views32 slides
KOWAZA for mackerel by
KOWAZA for mackerelKOWAZA for mackerel
KOWAZA for mackerelkarupanerura
3.4K views36 slides

More from karupanerura (20)

コンテキストと仲良く by karupanerura
コンテキストと仲良くコンテキストと仲良く
コンテキストと仲良く
karupanerura 3.3K views
The plan of Aniki 2.0 by karupanerura
The plan of Aniki 2.0The plan of Aniki 2.0
The plan of Aniki 2.0
karupanerura 4.4K views
The Crystal language *recently* update by karupanerura
The Crystal language *recently* updateThe Crystal language *recently* update
The Crystal language *recently* update
karupanerura 776 views
Optimize perl5 code for perfomance freaks by karupanerura
Optimize perl5 code for perfomance freaksOptimize perl5 code for perfomance freaks
Optimize perl5 code for perfomance freaks
karupanerura 5K views
Technology for reduce of mistakes - うっかりをなくす技術 by karupanerura
Technology for reduce of mistakes - うっかりをなくす技術Technology for reduce of mistakes - うっかりをなくす技術
Technology for reduce of mistakes - うっかりをなくす技術
karupanerura 9.7K views
Why we use mruby with Perl5? by karupanerura
Why we use mruby with Perl5?Why we use mruby with Perl5?
Why we use mruby with Perl5?
karupanerura 4.7K views
Perlにおけるclass実装パターン by karupanerura
Perlにおけるclass実装パターンPerlにおけるclass実装パターン
Perlにおけるclass実装パターン
karupanerura 1.9K views
モジュール開発におけるぼくの試行錯誤 by karupanerura
モジュール開発におけるぼくの試行錯誤モジュール開発におけるぼくの試行錯誤
モジュール開発におけるぼくの試行錯誤
karupanerura 4.2K views
Aniki - The ORM as our great brother. by karupanerura
Aniki - The ORM as our great brother.Aniki - The ORM as our great brother.
Aniki - The ORM as our great brother.
karupanerura 2.2K views
Perl5 meta programming by karupanerura
Perl5 meta programmingPerl5 meta programming
Perl5 meta programming
karupanerura 3.7K views
mysqlcasual6-next-key-lock by karupanerura
mysqlcasual6-next-key-lockmysqlcasual6-next-key-lock
mysqlcasual6-next-key-lock
karupanerura 12.4K views

Recently uploaded

SSH応用編_20231129.pdf by
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdficebreaker4
405 views13 slides
Windows 11 information that can be used at the development site by
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development siteAtomu Hidaka
90 views41 slides
The Things Stack説明資料 by The Things Industries by
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things IndustriesCRI Japan, Inc.
78 views29 slides
光コラボは契約してはいけない by
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけないTakuya Matsunaga
27 views17 slides
定例会スライド_キャチs 公開用.pdf by
定例会スライド_キャチs 公開用.pdf定例会スライド_キャチs 公開用.pdf
定例会スライド_キャチs 公開用.pdfKeio Robotics Association
135 views64 slides

Recently uploaded(12)

SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdf
icebreaker4405 views
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development site
Atomu Hidaka90 views
The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.78 views
光コラボは契約してはいけない by Takuya Matsunaga
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけない
Takuya Matsunaga27 views
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by PC Cluster Consortium
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by PC Cluster Consortium
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門
mkoda479 views
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...

TIme::Moment+Time::Strptime=