0

findAll()メソッド中にCakePHPが使用するメモリ全体を解放する可能性はありますか? データベースの巨大な選択を単一の部分に分けようとしましたが、memory_get_usageすべての部分の後でメモリを削除する方法が見つかりません。TableModel私はすべての選択の後に設定を解除しようとします, clearCache,cacheMethods = falseそしてpublic $cacheQueries = false、mysql - データベースでのCakePHPの選択によるメモリ使用量を減らすために何もしません. CakePHP 2.4.* を使用しています。

3792752 バイトのメモリ使用量から始めます。そして、約 90k のデータ行を選択することにより、249679096 バイトになります。

私を助けてください!そのメモリリークの問題を解決しようとして、インターネットを一生懸命育てました。しかし、私は何も役に立ちません。

4

2 に答える 2

1

@ user2140111 現在のリリースが 2.3.5 のときに Cake 2.4.* をどのように使用していますか? 不安定なブランチを使用していますか?EXPLAINデータベースで直接SQL を使用してクエリを実行し、そこで何が起こっているかを確認してください。また、SQLlimitを使用して部分的に「分割」し、メモリ使用量を確認します。

238 MB は大量のメモリですが、DB 選択から来ているとは思えません。これは非常に制限されているため、ブロブを保存しません。ブロブを保存していますか?

メモリ内に未使用の変数がたくさんある可能性があります。

于 2013-05-31T08:52:05.603 に答える
1

使用中のメモリの量は、コード内のいくつかのエラーの方向を示しています。デバッグが 2 または 3 になっていることを確認し、コードにエラーがないかチェックします。PhPMyAdmin で sql クエリを実行してみると、データベースのクエリ方法に問題があることがわかる場合があります。

于 2013-05-30T20:06:43.930 に答える