"String Intern" を知っていますか?

873 Views

September 05, 24

スライド概要

"PyCon JP 2022 LT" とありますが、LTは落選しました。

profile-image

Software Engineer @RevComm, Inc.

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

“String intern” を知ってますか? 2022/10/14 @ PyCon JP 2022 LT

2.

自己紹介 ● 小門 照太 ○ https://portfolio.skokado.me/ ● 職種:インフラ / クラウドエンジニア ● 所属:株式会社RevComm ● Python, AWS, DevOps, … ● 小鳥+猫

3.

(再掲) “String intern” を知ってますか? 2022/10/14 @ PyCon JP 2022 LT

4.

クイズです

5.

クイズです 次のうち is による比較結果が True になるのはどれでしょう?

6.

クイズです 次のうち is による比較結果が True になるのはどれでしょう?

7.

クイズです 次のうち is による比較結果が True になるのはどれでしょう? ⇒Answer: 1, 2, 3

8.

クイズです 次のうち is による比較結果が True になるのはどれでしょう? ⇒Answer: 1, 2, 3 ※補足 - Python 3.10.6 - 対話モードで実行する場合 - 右の記法では True

9.

なぜか “String intern”

10.

What is “String intern” ? メモリー内の “隔離” されたテーブルに文字列の値のコピーを格納する仕組み

11.

What is “String intern” ? メモリー内の “隔離” されたテーブルに文字列の値のコピーを格納する仕組み 文字列 PyConJP が “intern” された

12.

What is “String intern” ? メモリー内の “隔離” されたテーブルに文字列の値のコピーを格納する仕組み メリット ● 値が同じ変数同士を比較する場合のパフォーマンス向上 ○ 文字列の値ではなくポインタで比較可能になるため

13.

What is “String intern” ? しかし、メモリー使用量やオーバーヘッドのトレードオフがある。 そのため「全ての文字列を intern する」わけではない。 ⇒Python はいくつかのルールに基づいて intern を行う ※「いくつかのルール」のドキュメントは見つけられず …

14.

What is “String intern” ? しかし、メモリー使用量やオーバーヘッドのトレードオフがある。 そのため「全ての文字列を intern する」わけではない。 ⇒Python はいくつかのルールに基づいて intern を行う ※「いくつかのルール」のドキュメントは見つけられず …

15.

sys.intern() intern を強制することが可能

16.

使いどころ 「長い文字列の比較」においてパフォーマンスが向上する

17.

使いどころ 「長い文字列の比較」においてパフォーマンスが向上する

18.

Appendix リンク ● String Interning in Python: A Hidden Gem That Makes Your Code Faster

19.

Thank you !