Лучший рубиновый интерпретатор скидки с цены?

Неустранимая ошибка: допустимый размер памяти из XXX байт исчерпан (пытался выделить XXX байты)

Недостаточно памяти для запуска вашего скрипта. PHP достиг предела памяти и перестает его выполнять. Эта ошибка является фатальной, сценарий останавливается. Значение предела памяти можно настроить либо в файле php.ini, либо с помощью ini_set('memory_limit', '128 M'); в скрипте (который перезапишет значение, определенное в php.ini). Цель ограничения памяти заключается в том, чтобы не допустить, чтобы один скрипт PHP собирал всю доступную память и приводил к остановке всего веб-сервера.

Первое, что нужно сделать, это свести к минимуму объем памяти, необходимый вашему сценарию , Например, если вы читаете большой файл в переменной или извлекаете много записей из базы данных и сохраняете их все в массиве, которые могут использовать много памяти. Измените свой код, чтобы вместо этого читать строки по строке или извлекать записи базы данных по одному, не сохраняя их все в памяти. Это требует немного концептуального понимания того, что происходит за кулисами, и когда данные хранятся в памяти и в других местах.

Если эта ошибка возникла, когда ваш сценарий не выполнял интенсивную работу с памятью, вы вам нужно проверить свой код, чтобы узнать, есть ли утечка памяти. Функция memory_get_usage является вашим другом.

Вопросы, относящиеся:

74
задан 2 revs, 2 users 100% 21 November 2013 в 21:36
поделиться

4 ответа

Я использую 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


Август 2009 Обновления

BlueCloth2 был выпущен ( http://www.deveiate.org/projects/BlueCloth ), Это - скорость, на одном уровне с RDiscount, потому что это основано на RDiscount - это не чистый Ruby.

(Спасибо Jim)


ноябрь 2009 Обновления

Kramdown 1.0 был просто выпущен . Я еще не попробовал его, но это - синтаксический анализатор Скидки с цены чистого Ruby, который утверждает, что был 5x быстрее, чем Maruku.


апрель 2011 Обновления

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.

316
ответ дан 7 revs 24 November 2019 в 11:44
поделиться

Попробуйте RDiscount. BlueCloth является медленным и ошибочным.

5
ответ дан zenazn 24 November 2019 в 11:44
поделиться

Я верю , BlueCloth является самым видным.

1
ответ дан Gordon Wilson 24 November 2019 в 11:44
поделиться

Тест в ответе Кейси использует BlueCloth 1. BlueCloth 2 является самым быстрым в наши дни: http://www.deveiate.org/projects/BlueCloth

5
ответ дан 24 November 2019 в 11:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: