Увеличение производительности в компиляции Java к собственному коду?

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

11
задан jason 9 September 2008 в 06:05
поделиться

4 ответа

Было подобное обсуждение здесь недавно для вопроса, Что такое преимущества байт-кода по собственному коду?. Можно найти интересные ответы в том потоке.

4
ответ дан 3 December 2019 в 10:27
поделиться

Производительность памяти или производительность ЦП? Или действительно ли они - то же в эти дни?

Моя единственная информация является неподтвержденной и на другой платформе: после портирования набора голодных ЦП приложений к C# (.NET 2.0), я не заметил существенной потери в производительности (я не считаю 10% существенными). Правильно написанный код, кажется, работает хорошо на множестве архитектуры.

Большинство приложений тратит/напрасно тратит время с:

  • Операции IO, которые не извлекут выгоду из статического (время компиляции) анализу.
  • Плохие Алгоритмы, которые не извлекут выгоду из статического анализа.
  • Плохие разметки Памяти в критических внутренних циклах ЦП. В то время как технически возможно, что компиляторы помогают нам здесь, я должен все же видеть, что реальный компилятор делает что-либо интересное.

Таким образом основанный на моем опыте, если Вы не пишете видеокодек, нет никакого преимущества для компиляции приложений Java по сравнению только с положением на компиляторы горячей точки.

1
ответ дан 3 December 2019 в 10:27
поделиться

Ваш вопрос является немного большим, ответ варьируются много

  • Если Вы используете Как раз вовремя компиляцию (JIT) или нет
  • Когда Вы используете, если Ваш процесс выполняется в течение долгого времени или нет

Вся недавняя JVM использует JIT, но на старой JVM код Java время на медленнее тот собственный код.

Если у Вас есть сервер, которые работают в течение длительного промежутка времени или пакета, которые выполняют тот же код снова и снова, различие и быть очень низким.

Мы записали тот же пакет и в C++ и в Java и выполнили его с другим набором данных, результат отличаются для приблизительно 3-секундного, со взятием набора данных от 5 минут до нескольких часов.

Но будьте осторожны, они - особый случай, что будет важное различие, например, пакет, которым нужна большая память.

2
ответ дан 3 December 2019 в 10:27
поделиться

Некоторая более неподтвержденная информация. Я работал над некоторыми производительность критические торговые финансовые приложения в реальном времени. Я соглашаюсь с Frank, почти каждый раз, когда Вашей проблемой не является отсутствие того, чтобы быть скомпилированным, это - Ваш алгоритм или структура данных. Современные компиляторы горячей точки очень хороши с правильным кодом, например, библиотека CERN Colt в 90% скомпилированного, оптимизированного Фортрана для численного расчета.

Если бы Вы волнуетесь по поводу скорости, я действительно рекомендовал бы хорошему профилировщику и получил бы доказательство как, туда, где Ваши узкие места - я использую YourKit и был очень рад.

Мы только обратились к собственному скомпилированному коду для скорости в одном экземпляре в последние несколько лет, и это было так, мы могли использовать CUDA и получить некоторую серьезную производительность GPU.

4
ответ дан 3 December 2019 в 10:27
поделиться
Другие вопросы по тегам:

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