問題タブ [stack-size]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python スレッドの stack_size と segfaults
最大 500 のスレッドを生成する Web クローラー スクリプトで、各スレッドは基本的に、リモート サーバーから提供される特定のデータを要求します。各サーバーの応答は、内容とサイズが他とは異なります。
スレッドのstack_sizeを756Kに設定しています
これにより、必要な十分な数のスレッドを確保し、ほとんどのジョブと要求を完了することができます。しかし、一部のサーバーの応答は他のサーバーよりも大きく、スレッドがそのような応答を受け取ると、スクリプトは SIGSEGV で終了します。
stack_sizes が 756K を超えると、必要な数のスレッドを同時に持つことができなくなります。
クラッシュせずに特定の stack_size を続行するにはどうすればよいかについての提案はありますか? 特定のスレッドの現在使用されているstack_sizeを取得するにはどうすればよいですか?
c++ - オブジェクトがスタック上にあるかどうかを識別する方法は?
C++ でスタックまたはヒープにオブジェクトを割り当てるための経験則を探していました。ここでSOに関する多くの議論を見つけました。多くの人が、それはオブジェクトの寿命に関するものだと言いました。関数のスコープよりも長い寿命が必要な場合は、ヒープに入れます。それは完全に理にかなっています。
しかし、私を混乱させたのは、多くの人が、オブジェクトが小さい場合はスタックに割り当てるということです。オブジェクトが大きい場合は、ヒープに入れます。しかし、オブジェクトを識別する方法が大きいかどうかについて、誰も言いませんでしたか?
以下の質問があります。
- オブジェクトが大きいかどうかを識別する方法は?
- スタックの最大サイズは?OSごとにスタックサイズが異なる?
- ラップするラッパークラスがあります
vector<string>
。約100アイテムになります。このクラスをスタックに割り当てると、スタック オーバーフローが発生しますか? 私はこれを試しましたが、完全に機能しました。私が何か間違ったことをしているかわからない。
java - しばらく実行した後、Java のスレッドで使用される実際のスタック サイズを取得できますか?
アイデアは、特定の Java アプリケーションの最適なスタック サイズを決定するのに役立つことです。
この情報を使用して実行できることの 1 つは、スレッドが終了するときに変更でき、定期的に、およびアプリケーションの終了時にダンプできる、スタック サイズの範囲テーブルを作成することです。
編集:これは、プロファイラーにアクセスできない実際のワークロードを備えた顧客のマシンで実行するというコンテキストにあります。
EDIT2: スレッドあたり (IIRC) 256Kb での 1 つの回答に応えて、私はしばらくの間、それが必要なものの現実にどれほど近いのか疑問に思っていました (おそらくスタックスペースがオンデマンドで割り当てられます)。メッセージパッシングに基づいた高度にスレッド化されたアプリケーションサーバーがあり、ARM ハンドヘルドからオクトコア Linux、ミッドレンジ、メインフレームまで、あらゆるもので実行されます。多くのメッセージ ハンドラを持つシステムのヒープ用のスタック スペース。
興味深い同様の質問がいくつかありますが、それらはネイティブ/OS固有のものです。
stack - スタックサイズが固定されていない言語/プラットフォームは?
一部の言語またはプラットフォームではスタックのサイズが固定されていないため、オーバーフローしにくいですか? UNIX で C を使用したことを覚えています。スタックはオーバーフローしにくいものでしたが、Win 3.1 の時代には、スタックは非常に簡単にオーバーフローしました。
linux - Linuxでプログラムのスタックサイズを決定する方法は?
Linuxでプログラムの現在のスタックサイズをどのように決定しますか?
各プログラムのスタックサイズは Linux では 8 MB になると言われていますが、cat /proc//mmap を使用すると異なるサイズを示します。
また、関連付けられたスレッドのスタック サイズをどのように決定しますか? スレッドには独自のプライベートスタックがあると言われているので?
java - Eclipseで-Xssを設定するには?
私の問題は、Eclipse で Java プロジェクトを実行するときにデフォルトのスタック サイズを増やしたいということです。答えを探してみましたが、 -Xss オプションをより大きな数値に設定する必要があるようですが、この値にアクセス/設定する方法がわかりません。
私は Eclipse 3.6.0 を実行している Windows マシンを使用しています。このオプションをどのように設定しますか? 具体的には、どうすればできるかの手順を求めていると思います
- スタック サイズのデフォルト値を確認し、
- その値をより高い値に設定します。
ありがとう!
makefile - メイクファイルでスタック サイズを設定しますか?
コマンドラインでスタックサイズを無制限に設定する方法を知っています:
また、bash でスタック サイズを無制限に設定すると、コードが正常に実行され、終了します。
makefile で (コンパイラとして g++ を使用して) スタック サイズを無制限 (または特定のサイズ) に設定できますか? もしそうなら、どのように?
注: プロジェクトのソース ファイル (*.cpp、*.h) とメイクファイルのみを送信できます。つまり、(1) makefile が実行され、(2) コードが実行されます。したがって、スクリプトやその他の特別な命令は事前に実行されません。そのため、メイクファイルで変更を行う必要があります...誰かが他の/より良い/素晴らしいアイデアを持っていない限り?
前もって感謝します!
java - Java: スタック サイズを小さくすると、頻繁なメソッド呼び出しが高速化されますか?
どこでも、JVM スタック サイズを大きくすること (つまり、より深い再帰を可能にすること) について読み続けています。
しかし、私は自問自答しています。スタック サイズを小さくすると、メソッド呼び出しが高速化されるでしょうか?
おそらく私の理解は間違っていますが、各スタックの割り当て速度(再帰的なメソッド呼び出しだけでなく)はそのサイズに依存すると思います。
誰かがベンチマーク、または少なくともこのトピックに関する背景情報を教えてもらえますか?
ありがとうございました!
windows - Windowsでのスレッドスタックサイズ(Visual C ++)
実行中のスレッドのスタックサイズを決定するための呼び出しはありますか?MSDNスレッド関数のドキュメントを調べていましたが、見つからないようです。
gdb - gdb はスタック サイズを決定し、コマンド リストで条件付き
gdb スクリプトでスタック サイズ (= スタック内のフレーム数) を調べて、コマンド リストの条件として使用することはできますか? (gdb スクリプトとは、「gdb --command='gdb_script' 実行可能ファイル」として gdb に指定できるコマンドのリストを意味します)
また、コマンド リスト内に条件を含めることは可能ですか? 私はこのようなものを探しています(疑似コードで):
ありがとう、よろしく、ベルント。