874 Views
September 05, 24
スライド概要
"PyCon JP 2022 LT" とありますが、LTは落選しました。
Software Engineer @RevComm, Inc.
“String intern” を知ってますか? 2022/10/14 @ PyCon JP 2022 LT
自己紹介 ● 小門 照太 ○ https://portfolio.skokado.me/ ● 職種:インフラ / クラウドエンジニア ● 所属:株式会社RevComm ● Python, AWS, DevOps, … ● 小鳥+猫
(再掲) “String intern” を知ってますか? 2022/10/14 @ PyCon JP 2022 LT
クイズです
クイズです 次のうち is による比較結果が True になるのはどれでしょう?
クイズです 次のうち is による比較結果が True になるのはどれでしょう?
クイズです 次のうち is による比較結果が True になるのはどれでしょう? ⇒Answer: 1, 2, 3
クイズです 次のうち is による比較結果が True になるのはどれでしょう? ⇒Answer: 1, 2, 3 ※補足 - Python 3.10.6 - 対話モードで実行する場合 - 右の記法では True
なぜか “String intern”
What is “String intern” ? メモリー内の “隔離” されたテーブルに文字列の値のコピーを格納する仕組み
What is “String intern” ? メモリー内の “隔離” されたテーブルに文字列の値のコピーを格納する仕組み 文字列 PyConJP が “intern” された
What is “String intern” ? メモリー内の “隔離” されたテーブルに文字列の値のコピーを格納する仕組み メリット ● 値が同じ変数同士を比較する場合のパフォーマンス向上 ○ 文字列の値ではなくポインタで比較可能になるため
What is “String intern” ? しかし、メモリー使用量やオーバーヘッドのトレードオフがある。 そのため「全ての文字列を intern する」わけではない。 ⇒Python はいくつかのルールに基づいて intern を行う ※「いくつかのルール」のドキュメントは見つけられず …
What is “String intern” ? しかし、メモリー使用量やオーバーヘッドのトレードオフがある。 そのため「全ての文字列を intern する」わけではない。 ⇒Python はいくつかのルールに基づいて intern を行う ※「いくつかのルール」のドキュメントは見つけられず …
sys.intern() intern を強制することが可能
使いどころ 「長い文字列の比較」においてパフォーマンスが向上する
使いどころ 「長い文字列の比較」においてパフォーマンスが向上する
Appendix リンク ● String Interning in Python: A Hidden Gem That Makes Your Code Faster
Thank you !