Итак, наконец я нашел решение для исправления этой проблемы!
Просто установите системные свойства в java2d в вашем статическом методе main, написав этот код:
public static void main(String argsp[]) {
System.setProperty("sun.java2d.opengl", "true");
new Game();
}
Для начала, оба вызова (require_once и include_once) перепроверяют, если файл не был включен прежде.
Таким образом, способ, которым они оба достигают этого, путем поиска файла во всех доступных путях и путем важной проверки, не было ли это в соединении прежде и т.д.
В фоновом режиме то, что происходит, - то, что они оценивают все различные варианты (например, несколько include_path, и т.д.) и затем путем создания realpath из этой формы abreviated, они создают уникальный идентификатор. Существует только один и тот же путь - не два.
Это уже - не самый быстрый процесс на планете и обычно происходит по каждому запросу с PHP. Затем добавьте другую дорогую операцию, которая является статистикой, когда она создает то, что я назвал realpath (realpath, потому что это - вид того, что realpath () делает) проверять, существует ли файл.
Исправьте меня, если я неправ, но APC имеет оптимизацию специально для этого случая.
Так так или иначе - теперь на различии между require_once и include_once, который является, что require_once оценивает файл (для ошибок анализа низкого уровня, и т.д.), когда это включает его. Это - дополнительная проверка, которая можно избавиться от того, если у Вас есть достаточно QA на месте, который ошибка анализа никогда не может стащить во включение.
Это просто хитро для нахождения иначе.:-)
(Что-то для рассмотрения: Вы могли разработать с require_once и заменить все вызовы include_once, когда Вы развертываетесь.)
Что касается кэша кода операции - я рекомендовал бы APC. Это было обсуждено на stackoverflow прежде. Лично, я/мы, используют его некоторое время (мы обрабатываем примерно 100k посетителей/день с 3 frontends и 1 бэкендом), и мы очень счастливы. APC также оптимизирован для require_once/include_once безумия.
Довольно прохладный побочный эффект состоит в том, что APC также позволяет Вам хранить переменные PHP в памяти - вид персистентных и т.д.
Пара дополнительных указателей:
Надежда, которая помогает.
Я не могу guarantuee ничто, поскольку я глубоко достаточно не изучил его, но да, я видел различия в скорости между двумя. Они никогда не были достаточно значительными мне для перемещения в include_once вместо require_once все же.
Я всегда предполагал, что различие было то, потому что require_once должен сделать больше работы под водой. по крайней мере еще одна потенциальная ошибка подготовиться к и дескриптор и намного больше сделать, когда требуемый файл не существует.