回答編集履歴

3

説明の改善

2018/10/20 13:30

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -50,6 +50,6 @@
50
50
 
51
51
 
52
52
 
53
- ただし、`p2`には参照オブジェクトの`__dict__`があり、これが192byte消費しているので、差し引き`p1`の方が160byteくらい得している、と考えれば良いと思います。
53
+ ただし、`p2`には参照オブジェクトの`__dict__`があり、これが192byte消費しているので、`p1`の方が差し引き160byteくらい節約できている、と考えれば良いと思います。
54
54
 
55
55
  (厳密な正しさは保証しません)

2

説明の改善

2018/10/20 13:30

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -1,4 +1,4 @@
1
- `sys.getsizeof()`では上手く測れません。
1
+ `sys.getsizeof()`ではオブジェクトのメモリ使用量は上手く測れません。
2
2
 
3
3
 
4
4
 
@@ -10,11 +10,15 @@
10
10
 
11
11
 
12
12
 
13
- いうまでもなく`obj.__dict__`は参照オブジェクトです。つまり、質問文コードでは見れていません。
13
+ `obj.__dict__`は`obj`が参照しているオブジェクトです。これメモリ使用量は`sys.getsizeof(obj)`では見れません。
14
14
 
15
15
 
16
16
 
17
- ……困ったことに、参照オブジェクトを含めて上手く測れる簡単な手段は実はないのですが。とりあえず`p2.__dict__`のサイズを見ましょう。
17
+ ……困ったことに、参照オブジェクトを含めて上手くメモリ使用量を測れる簡単な手段は実はないのですが。
18
+
19
+
20
+
21
+ とりあえず`p2.__dict__`のサイズを見ましょう。
18
22
 
19
23
 
20
24
 
@@ -46,6 +50,6 @@
46
50
 
47
51
 
48
52
 
49
- ただし、`p2`には参照オブジェクトの`__dict__`があり、これが192byte消費しているので、差し引き160byteくらい得している、と考えれば良いと思います。
53
+ ただし、`p2`には参照オブジェクトの`__dict__`があり、これが192byte消費しているので、差し引き`p1`の方が160byteくらい得している、と考えれば良いと思います。
50
54
 
51
55
  (厳密な正しさは保証しません)

1

コード変更

2018/10/20 13:07

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -28,6 +28,10 @@
28
28
 
29
29
  print(sys.getsizeof(p2)) # => 56
30
30
 
31
+
32
+
33
+ # 追加
34
+
31
35
  print(sys.getsizeof(p2.__dict__)) # => 192
32
36
 
33
37