薄いブログ

技術の雑多なことを書く場所

2022-01-01から1年間の記事一覧

Pythonのbytesはsubscriptでコピーが発生する

TL;DR Pythonのbytesはsubscriptでmemmoveする。 背景 Pythonで簡単なバイナリのパーサーを書いていたとき、そんなに入力が大きくない(1.6MB程度)のに処理に時間がかかることに気づいた。 調査 まず当該プログラムをcProfileを使ってプロファイリングしてみ…

JavaにおけるHeapのClassHistogramを取得する複数の方法とその違い

TL;DR 方法 Full GCの有無 タイミング 条件 JFR の jdk.ObjectCount あり 定期的 JFRが使える -XX:+PrintClassHistogram あり シグナル受信時 JDK 1.4.2~ jmap -histo:live あり 実行時 JDK 1.4.2~ jcmd GC.class_histogram あり 実行時 JDK 7~ jmap -histo …

「CPythonのソースコードを読んでみた」を読んで

背景 inside.estie.co.jp を読んでExステージについて検証したくなったので alloc_bytes と alloc_list の速度差について python 3.11 intel mac def alloc_bytes(size): return b"ABCDEFGH" * size while True: alloc_bytes(1024**2 * 128) def alloc_list(…

How to stop running out of ephemeral ports and start to love long-lived connections の副読本

https://blog.cloudflare.com/how-to-stop-running-out-of-ephemeral-ports-and-start-to-love-long-lived-connections/ を読んでいて理解できなかったところをまとめた記事です。 元記事の簡単な概要 エフェメラルポートが枯渇しないようにローカルポートの…