回答編集履歴

1

cygwinアプリのヒープサイズ変更方法と,ネットで調べたdll起因のエラー解決としてrebaseコマンドを使う例の紹介

2021/12/23 13:10

投稿

ujimushi_sradjp
ujimushi_sradjp

スコア2152

test CHANGED
@@ -141,3 +141,59 @@
141
141
 
142
142
 
143
143
  * cygwinのターミナル上から`pip3 install halo`
144
+
145
+
146
+
147
+ # 2021/12/23 22:00調べた情報の追加
148
+
149
+ ベストアンサー選んでいただいた後で申し訳ありませんが後で分かった内容を追加しておきます。
150
+
151
+
152
+
153
+ ## cygwin上アプリのヒープサイズの変更方法について
154
+
155
+
156
+
157
+ [cygwin公式サイトのヒープサイズ変更方法](https://cygwin.com/cygwin-ug-net/setup-maxmem.html)によると,
158
+
159
+ `peflags`コマンドでcygwinが使うヒープサイズを変更できるようです。
160
+
161
+ 64bit版cygwinの場合は最大2048MBだとか。「0」で設定されている場合はデフォルトの512MBだそうです。
162
+
163
+
164
+
165
+ 数字の単位は「MB」だそうです。
166
+
167
+
168
+
169
+ ```bash
170
+
171
+ peflags --cygwin-heap=2048 /bin/python
172
+
173
+ # 上と同じ
174
+
175
+ peflags -z2048 /bin/python
176
+
177
+ ```
178
+
179
+
180
+
181
+ ## cygwin1.dllとリンクしているプログラムのエラーについて
182
+
183
+
184
+
185
+ 今回の質問とよく似ているエラーがちょくちょくネットで報告されているようです。
186
+
187
+
188
+
189
+ 少し前の例ですが,[https://tech.guitarrapc.com/entry/2014/01/31/071034](https://tech.guitarrapc.com/entry/2014/01/31/071034)のような
190
+
191
+ 例もあるようです。
192
+
193
+
194
+
195
+ `cygwin1.dll`でメモリをたくさん確保するので,アドレスがかぶってメモリが確保できないことがあるようです。
196
+
197
+ この中の対策の一つとして`rebase`コマンドを使ってdllのメモリ配置を重ならないように指定する例が挙げられていますが,
198
+
199
+ 私もちゃんと理解できるいる訳ではありません。