Недостаточно памяти для запуска вашего скрипта. PHP достиг предела памяти и перестает его выполнять. Эта ошибка является фатальной, сценарий останавливается. Значение предела памяти можно настроить либо в файле php.ini
, либо с помощью ini_set('memory_limit', '128 M');
в скрипте (который перезапишет значение, определенное в php.ini
). Цель ограничения памяти заключается в том, чтобы не допустить, чтобы один скрипт PHP собирал всю доступную память и приводил к остановке всего веб-сервера.
Первое, что нужно сделать, это свести к минимуму объем памяти, необходимый вашему сценарию , Например, если вы читаете большой файл в переменной или извлекаете много записей из базы данных и сохраняете их все в массиве, которые могут использовать много памяти. Измените свой код, чтобы вместо этого читать строки по строке или извлекать записи базы данных по одному, не сохраняя их все в памяти. Это требует немного концептуального понимания того, что происходит за кулисами, и когда данные хранятся в памяти и в других местах.
Если эта ошибка возникла, когда ваш сценарий не выполнял интенсивную работу с памятью, вы вам нужно проверить свой код, чтобы узнать, есть ли утечка памяти. Функция memory_get_usage
является вашим другом.
Вопросы, относящиеся:
Я использую Maruku для обработки 100 000 - 200 000 документов в день. Главным образом сообщения форума, но я также использую его на больших документах как страницы Wiki. Maruku намного быстрее, чем BlueCloth, и это не дросселирует на больших документах. Это - весь Ruby и хотя код не особенно легко расшириться и увеличиться, это выполнимо. У нас есть несколько тонких настроек и отдельно оплачиваемых предметов на нашем диалекте Скидки с цены.
, Если Вы хотите что-то, что является чистый Ruby, я определенно рекомендую Maruku.
Для самая быстрая опция там, Вы, вероятно, хотите RDiscount. Кишки реализованы в C.
См. также: " Перемещение Прошлый BlueCloth" на блоге Ryan Tomayko. Сообщение Ryan включает следующий сравнительный тест 100 повторений теста скидки с цены:
BlueCloth: 13.029987s total time, 00.130300s average
Maruku: 08.424132s total time, 00.084241s average
RDiscount: 00.082019s total time, 00.000820s average
BlueCloth2 был выпущен ( http://www.deveiate.org/projects/BlueCloth ), Это - скорость, на одном уровне с RDiscount, потому что это основано на RDiscount - это не чистый Ruby.
(Спасибо Jim)
Kramdown 1.0 был просто выпущен . Я еще не попробовал его, но это - синтаксический анализатор Скидки с цены чистого Ruby, который утверждает, что был 5x быстрее, чем Maruku.
Maruku не видел фиксацию с июня 2010. Можно хотеть изучить Kramdown вместо этого.
А новая быстрая опция, которая не является чистым Ruby: GitHub выпустил Redcarpet, который основан на libupskirt: https://Август 2013 Обновления github.com/blog/832-rolling-out-the-redcarpet
Kramdown является все еще очень здоровым проектом (на основе недавних фиксаций, нерешенных вопросов, вытяните запросы), и большой выбор для чистого механизма Скидки с цены Ruby https://, github.com/gettalong/kramdown
Redcarpet является, вероятно, все еще обычно используемой и активно сохраняемой опцией для людей, которые не нуждаются или хотят чистый Ruby.
Попробуйте RDiscount. BlueCloth является медленным и ошибочным.
Я верю , BlueCloth является самым видным.
Тест в ответе Кейси использует BlueCloth 1. BlueCloth 2 является самым быстрым в наши дни: http://www.deveiate.org/projects/BlueCloth