質問編集履歴

7

メモリ使用量を変更

2022/08/29 05:08

投稿

kabotya3
kabotya3

スコア32

test CHANGED
File without changes
test CHANGED
@@ -86,7 +86,21 @@
86
86
  }
87
87
  ```
88
88
  を加えて実行した。~~アクティビティモニタでの最大メモリ使用量は実行時に大幅に増えたものの使用済みメモリ14GB程度であった。~~
89
- プロセスのswap含めた最大メモリ使用量を確認したところ、74GBとなりました。
89
+ ~~プロセスのswap含めた最大メモリ使用量を確認したところ、74GBとなりました。~~
90
+ 以下のコードのようにcinの前に二重ループを起き、入力せず変化がなくなるまで待ったところ76.06GBとなりました。
91
+ ```C++
92
+ int main() {
93
+ ll n, W;
94
+ for(int i = 0; i < sz; i++) {
95
+ for(int j = 0; j < sz; j++) {
96
+ table[i][j] = i + j;
97
+ }
98
+ }
99
+ cin >> n >> W;
100
+ cout << n << "\n";
101
+ return 0;
102
+ }
103
+ ```
90
104
 
91
105
  まとめると
92
106
  jbpb0様のIntel Macで`ll table[sz][sz];`として実行した結果と

6

追記のまとめの追加

2022/08/29 04:20

投稿

kabotya3
kabotya3

スコア32

test CHANGED
File without changes
test CHANGED
@@ -88,3 +88,7 @@
88
88
  を加えて実行した。~~アクティビティモニタでの最大メモリ使用量は実行時に大幅に増えたものの使用済みメモリ14GB程度であった。~~
89
89
  プロセスのswap含めた最大メモリ使用量を確認したところ、74GBとなりました。
90
90
 
91
+ まとめると
92
+ jbpb0様のIntel Macで`ll table[sz][sz];`として実行した結果と
93
+ 私のM1 Macで`ll (*table)[sz] = (ll(*)[sz])malloc(sizeof(ll) * sz * sz);`として実行した結果及びメモリ使用量がほぼ同じとなる
94
+

5

メモリ使用量の勘違いを訂正

2022/08/29 04:16

投稿

kabotya3
kabotya3

スコア32

test CHANGED
File without changes
test CHANGED
@@ -79,11 +79,12 @@
79
79
  このようにすると再起動することなく、正常終了することを確認。
80
80
  jbpb0様のコードのように
81
81
  ```C++
82
- for(int i=0; i<sz; i++ ){
82
+ for(int i=0; i<sz; i++ ){
83
- for(int j=0; j<sz; j++ ){
83
+ for(int j=0; j<sz; j++ ){
84
- table[i][j]=i+j;
84
+ table[i][j]=i+j;
85
- }
86
85
  }
86
+ }
87
87
  ```
88
- を加えて実行した。アクティビティモニタでの最大メモリ使用量は実行時に大幅に増えたものの使用済みメモリ14GB程度であった。
88
+ を加えて実行した。~~アクティビティモニタでの最大メモリ使用量は実行時に大幅に増えたものの使用済みメモリ14GB程度であった。~~
89
+ プロセスのswap含めた最大メモリ使用量を確認したところ、74GBとなりました。
89
90
 

4

配列をヒープに確保した時の挙動を追記

2022/08/29 04:07

投稿

kabotya3
kabotya3

スコア32

test CHANGED
File without changes
test CHANGED
@@ -68,6 +68,22 @@
68
68
  Reason: tried: '/usr/lib/libc++.1.dylib' (no such file), '/usr/local/lib/libc++.1.dylib' (no such file)
69
69
  zsh: abort ./a.out
70
70
  ```
71
+ * ヒープに確保するよう変えると動作した。
72
+ actorbug様より
73
+ > ヒープに確保するようにしたら、挙動が変わりませんかね。
74
+ > ```C++
75
+ > ll table[sz][sz];
76
+ >  ↓
77
+ > ll (*table)[sz] = (ll(*)[sz])malloc(sizeof(ll) * sz * sz);
78
+ > ```
79
+ このようにすると再起動することなく、正常終了することを確認。
80
+ jbpb0様のコードのように
81
+ ```C++
82
+ for(int i=0; i<sz; i++ ){
83
+ for(int j=0; j<sz; j++ ){
84
+ table[i][j]=i+j;
85
+ }
86
+ }
87
+ ```
88
+ を加えて実行した。アクティビティモニタでの最大メモリ使用量は実行時に大幅に増えたものの使用済みメモリ14GB程度であった。
71
89
 
72
-
73
-

3

修正依頼での話題をもとに追記した

2022/08/29 03:35

投稿

kabotya3
kabotya3

スコア32

test CHANGED
File without changes
test CHANGED
@@ -47,5 +47,27 @@
47
47
  macOS: Monterey バージョン12.3.1
48
48
 
49
49
  本来clangにはない<bits/stdc++.h>をincludeしてますが、これは拾ってきたbits/stdc++.hをincludeフォルダに入れている形で解決しています。
50
+ ### 追記
51
+ * VSCodeで実行していると書きましたが、VSCodeの統合ターミナルよりコマンドで実行しております。
52
+ * 普段はコンパイルオプションを-std=c++17としてコンパイルしてますが、c++11としても同様のエラーが確認できました。
53
+ * jbpb0様のIntel Macメモリ16GBでは正常に動作する。(修正依頼参照) **おそらくコンパイラは問題ではなくM1チップに関する問題?。**
54
+ * 再起動時の問題レポート冒頭は次のとおりです。
55
+ ```
56
+ panic(cpu 4 caller 0xfffffe001768b03c): Failed to reserve GPU Carveout region in user map 0xfffffe24cbfaa808 3 @vm_map.c:13285
57
+ Debugger message: panic
58
+ Memory ID: 0xff
59
+ OS release type: User
60
+ OS version: 21E258
61
+ Kernel version: Darwin Kernel Version 21.4.0: Fri Mar 18 00:47:26 PDT 2022; root:xnu-8020.101.4~15/RELEASE_ARM64_T8101
62
+ ```
63
+ * また配列サイズszを101,010から71,010に変更すると再起動は起こらず、./a.out実行時に次のエラーログが出る。コンパイルはエラーなく正常にできます。1行目でdyld_shared_cache_arm64eとあって、arm64つまりM1に関わるところだろうと思います。
64
+ ```
65
+ dyld[1704]: dyld cache '/System/Library/dyld/dyld_shared_cache_arm64e' not loaded: syscall to map cache into shared region failed
66
+ dyld[1704]: Library not loaded: /usr/lib/libc++.1.dylib
67
+ Referenced from: /Users/<NAME>/Desktop/programming/kyopuro/pra/a.out
68
+ Reason: tried: '/usr/lib/libc++.1.dylib' (no such file), '/usr/local/lib/libc++.1.dylib' (no such file)
69
+ zsh: abort ./a.out
70
+ ```
50
71
 
51
72
 
73
+

2

実行環境にメモリとストレージ容量を追加

2022/08/29 01:31

投稿

kabotya3
kabotya3

スコア32

test CHANGED
File without changes
test CHANGED
@@ -43,7 +43,7 @@
43
43
  実行環境
44
44
  C++17.
45
45
  コンパイラ:Apple clang version 13.1.6 (clang-1316.0.21.2.3)
46
- MacBook Pro (M1, 2020)
46
+ MacBook Pro (M1, 2020) メモリ16GB, SSD 500GB
47
47
  macOS: Monterey バージョン12.3.1
48
48
 
49
49
  本来clangにはない<bits/stdc++.h>をincludeしてますが、これは拾ってきたbits/stdc++.hをincludeフォルダに入れている形で解決しています。

1

タイトルが少し曖昧だったので変更

2022/08/28 18:22

投稿

kabotya3
kabotya3

スコア32

test CHANGED
@@ -1 +1 @@
1
- あるC++プログラムを実行するとパソコンがクラッシュする
1
+ 配列のサイズが大きいC++プログラムを実行するとパソコンがクラッシュする
test CHANGED
File without changes