問題タブ [memory-limit]

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.

0 投票する
25 に答える
685851 参照

php - PHPで33554432バイトの許容メモリサイズが使い果たされました(43148176バイトを割り当てようとしました)

このエラー メッセージが表示されています。何か提案はありますか?

PHPで33554432バイトの許容メモリサイズが使い果たされました(43148176バイトを割り当てようとしました)

0 投票する
6 に答える
9641 参照

php - PHP メモリ制限を増やす (Apache、Drupal6)

共有ホスティング サーバーで Drupal インストールを実行しようとしています。(プロバイダーに加入しているだけで、ボックスを所有していません。)

Apache サーバーの PHP メモリ制限を増やす必要があります。私が試してみました

settings.php (すべてのリクエストに含まれるファイル) に含まれていますが、これにより内部サーバー エラー 500 が発生します。それを取り出すと、次のエラーが発生します。

補足質問: 19456 は 33554432 未満です。許可されたサイズが使い果たされたと言っているのはなぜですか?

また、これを.htaccessに入れてみました:

これは効果がありませんでした。

0 投票する
1 に答える
661 参照

macos - OSXphp.iniのメモリ制限

最新バージョンのOSX(10.6)を使用している場合、8M(または設定したもの)のメモリ制限は、8388608ではなく8000000バイトで実行されていることを意味しますか?

0 投票する
2 に答える
6737 参照

domdocument - PHPコマンドラインスクリプトは、php.iniおよびini_set('memory_limit'、...)ディレクティブを無視します

一般的な「致命的なエラー:メモリ不足(30408704が割り当てられています)(24バイトを割り当てようとしました)...」PHPの致命的なエラーに直面しています。Apacheを介して提供されるページは、この動作を示していません。

私は次のことを試しました:

  1. php.iniのmemory_limitをはるかに大きな値に増やします。
  2. ini_set('memory_limit', -1)、、、 などini_set('memory_limit', '-1')の 呼び出しを介してスクリプト自体のmemory_limitを増やします。ini_set('memory_limit', 100000000)ini_set('memory_limit', '128M')
  3. unset()不要な配列とオブジェクトを使用して、ガベージコレクターがメモリを解放するように促します。
  4. ウェブホストに連絡しています。彼らは通常、非常に有能で知識が豊富ですが、この問題についても私を助けることができませんでした。
  5. -cコマンドラインフラグを使用してphp.iniファイルを明示的に含めて、さまざまな値を持つ特定のphp.iniファイルを手動で選択してみました。
  6. 生のバイト数と64M、128Mなどの値の両方を使用してphp.iniでmemory_limitを設定してみました。
  7. ホスティングプロバイダーは、問題なくrootとしてスクリプトを実行できましたが、root以外のユーザーを使用してスクリプトを実行した場合と同じ問題が発生します。おそらく、何らかの権限の問題が関係していますか?

私が何をしようとしても、エラーメッセージは同じです。コマンドラインスクリプトがへの変更を無視しているようmemory_limitです。

スクリプトがメモリ効率に優れていることを確認する傾向がありますが、現在、 Simple HTML DOMを介して大量のHTMLを解析する必要があり、メモリ不足の問題が発生しているのはパーサーです。スクリプトのメモリフットプリントを削減するために、代わりにDOMDocumentを使用してみました。これも役に立ちません。実際、メモリ不足エラーはスクリプトの他の場所でトリガーされるようになりました。

私の質問:誰かがこれまたは同様の問題を経験しましたか?何かお勧めはありますか?

ありがとうございました。

0 投票する
1 に答える
3222 参照

php - Salesforce / PHP-アウトバウンドメッセージ(SOAP)-メモリ制限の問題?DOMDocument :: loadXML()タグの問題でデータが途中で終了しましたか?

アップデート:

OK私はそれを理解しました、freadにはファイルサイズの制限があるようです、これをに変更しました

file_get_contents('php://input')

、ただし、SFでjava.net.SocketTimeoutExceptionが発生するようになりました。読み取りタイムアウトエラーが発生し、PHP側では何も発生しません。set_time_limit(0);も追加しました。PHPスクリプトに、私が理解していれば、スクリプトを必要な限り正しく実行します。何かご意見は?

ところで:私は(私がテストした)最大25を処理できますが、100は処理できません


Salesforceを使用して、アウトバウンドメッセージを(SOAP経由で)別のサーバーに送信しています。サーバーは一度に約8つのメッセージを処理できますが、SOAP要求に8つを超えるメッセージが含まれている場合、ACKファイルは返送されません。SFは1つのSOAPリクエストで最大100のアウトバウンドメッセージを送信できます。これがPHPのメモリの問題を引き起こしていると思います。アウトバウンドメッセージを1つずつ処理すると、すべて正常に処理され、一度に8つでも問題なく処理できます。しかし、より大きなセットは機能していません。

SFのエラー:

HTTPエラーログを見ると、着信SOAPメッセージが切り取られているように見え、次のようなPHP警告がスローされます。

PHPの致命的なエラー:

これにより、PHPにメモリの問題があり、サイズが原因で着信メッセージを解析できないと思います。

私はちょうど設定できると思っていました:

しかし、これは正しいアプローチでしょうか?着信SOAPリクエストで動的に増加するようにこれを設定する方法はありますか?

更新:いくつかのコードを追加する

SalesforceからのSOAPリクエストの例では、より大きなリクエストに複数の通知ノードが追加されます。

0 投票する
3 に答える
2218 参照

cron - PHP - Plesk - Cron - 許容メモリ サイズを使い果たしましたか?

これらは、スクリプトの一番上にある最初の 2 行です。

cron メモリ制限を介して何かを実行した場合は適用されないという印象を受けましたが、それは間違っていました。セーフモードはオフで、これらの値が設定されているかどうかをテストすると、設定されていますが、古き良き「PHP致命的:メモリが使い果たされました」エラーが発生し続けます。

私が間違っているかもしれないアイデアはありますか?そして、「メモリ制限」値に「無限」を書く「よりエレガントな方法」は-1か何かですか?

0 投票する
2 に答える
1061 参照

.net - x64でも、.NETで2GBを超えるサイズのオブジェクトを作成できないのはなぜですか?

読んだ後、C#文字列(およびその他の.NET API)のサイズは2GBに制限されていますか?.NET3.5で大きな文字列と配列を試してみました。割り当てることができる最大の配列はint.MaxValue - 56バイトであることがわかりました。文字列についても同様です。取得できる最大の文字は(int.MaxValue - 58) / 2文字でした(各文字は2バイトを使用したため)。その後、スローしOutOfMemoryExceptionます。

なぜこの制限が存在するのですか?実際に遭遇したことはありません。.NETの内部動作に興味があります。

はい、もちろん、これは十分なRAMを備えた64ビットマシン上にありました。もちろん、プロセスは64ビットプロセスとして実行されていました。(実際には、このような配列または文字列を3つ割り当てて、合計メモリ使用量を6GBにすることができます。)

0 投票する
2 に答える
15191 参照

vba - コレクションの最大サイズ

これが私のコードです:

ディレクトリ構造のファイル名のリストでコレクションを埋めています。

私は2000個のファイルを持っていますが、コレクションは256個しか返しません。通過しない最大数があるかどうか誰かが知っていますか?

もしそうなら、2000ファイルすべてをキャプチャするようにこのマクロをコーディングするより良い方法を提案できますか?

0 投票する
3 に答える
1450 参照

php - PHP/Apache で保護された大きなファイルを提供する

Apache Web サーバーから大きなファイル (> 2GB) を提供する必要があります。ファイルは保護されたダウンロードであるため、ユーザーを承認する何らかの方法が必要です。私が使用している CMS は、MySQL データベースに対してチェックされる Cookie を使用してユーザーを確認します。サーバーでは、max_execution_time を制御できず、memory_limit を制御できません。

私の手法は、小さなファイルに対して機能しています。ユーザーが PHP で (CMS によって) 承認された後、readfile() を使用してファイルを提供します。このファイルは、直接アクセスを防ぐためにドキュメント ルートの上に保存されます。ダウンロードをチャンクする手法や、fpassthru を使用して PHP のメモリ制限を回避する手法について読んだことがあります。しかし、max_execution_time の制限を回避する手法は見つかりませんでした。

PHP を完全にバイパスできるように、ファイルをドキュメント ルート内に格納することを考えました。しかし、私が理解できないのは、htaccessでアクセスを制限する方法です。ファイルを提供する前に、データベースに対してユーザーを確認する必要があります。

ありがとう。

0 投票する
3 に答える
1546 参照

php - PHP ini_get() と php.ini が同期していない

私のphp.iniには256Mのmemory_limitがあります。phpinfo() はこれを反映しています。しかし、PHP 内からは、ini_get('memory_limit'); 32M を返します。メモリ制限を超えたという私の致命的なエラーは、最大が 32M であることも示しています。

phpinfo() が私に嘘をついている理由はありますか?