« b2evolutionアンチスパム機能の改善今週のワイン FLYING FISH COVE SIRAZ »b2evolutionのspam排除機能でエラー Posted by momokuri on 2006 7月 13 in b2evolution b2evolutionでspam排除機能のblacklist管理のところで、エラーになる。 Fatal error: Allowed memory size of nn bytes exhausted (tried to allocate n bytes) in ほにゃらら こういうときは、phpの設定を変更する、以下のようなのを入れておくと いいかもしれない。 /* Uncomment this line to attempt to use a higher memory limit */ ini_set("memory_limit", "12M"); でも、根本的にプログラムに問題がある、と考えた方がいい。メモリをそんなに使うのは、どうしてか。今回の場合は、すごく大きなblacklistのデータをSQLでカウントしているので、そこが怪しい。 This entry was posted by momokuri and filed under b2evolution. この記事へのトラックバック アドレストラックバック URL (右をクリックし、ショートカット/リンクをコピーして下さい)1 コメント コメント from: admin メンバーちょうど、 if( ! $disp_blacklist && (count($res_stats) > 100) ) というコードがあり、$res_statsをもってくるときがDBMSにはいっているすべてのantispamレコードを引っ張ってくる。 それが、 list_antiSpam()という関数だ。 現状、このサイトでもスパムドメインやキーワードは数千のレコードになっており、これがメモリを圧迫してしまっている。 ブラックリストの全表示をすることは、すでに現実的ではないので、上記のように百以上のときは表示しないようにしてあるが、今のコードではDBからはとってきてしまう。 この$res_statsに入れるという処理方法は望ましくない。 この投稿にはモデレーション待ちのフィードバックが 15 件あります.... フォームを読み込み中... このセクションは、javascriptが有効なブラウザで表示可能です。
コメント from: admin メンバーちょうど、 if( ! $disp_blacklist && (count($res_stats) > 100) ) というコードがあり、$res_statsをもってくるときがDBMSにはいっているすべてのantispamレコードを引っ張ってくる。 それが、 list_antiSpam()という関数だ。 現状、このサイトでもスパムドメインやキーワードは数千のレコードになっており、これがメモリを圧迫してしまっている。 ブラックリストの全表示をすることは、すでに現実的ではないので、上記のように百以上のときは表示しないようにしてあるが、今のコードではDBからはとってきてしまう。 この$res_statsに入れるという処理方法は望ましくない。
ちょうど、
if( ! $disp_blacklist && (count($res_stats) > 100) )
というコードがあり、$res_statsをもってくるときがDBMSにはいっているすべてのantispamレコードを引っ張ってくる。
それが、
list_antiSpam()
という関数だ。現状、このサイトでもスパムドメインやキーワードは数千のレコードになっており、これがメモリを圧迫してしまっている。
ブラックリストの全表示をすることは、すでに現実的ではないので、上記のように百以上のときは表示しないようにしてあるが、今のコードではDBからはとってきてしまう。
この$res_statsに入れるという処理方法は望ましくない。