2013-11-27 2 views
-1

Я разрабатываю это бесплатное приложение с открытым исходным кодом, которое оказывает фракталы. http://perceptron.sourceforge.net/Java-приложение медленно работает на Windows и быстро на Linux

В моей Windows приложение в 2-3 раза медленнее, чем в Linux в данный момент, вероятно, из-за недавнего обновления драйвера Ati Radeon (такая же версия используется в Linux). Частота процессора не растет автоматически, когда приложение выполняется (оно остается на 1,4 ГГц), в отличие от Linux, где он сразу же поднимается до 3,4 ГГц.

(Он работает быстро, используя 64-разрядную Java и в Linux только в данный момент. Использование 32-разрядной версии по какой-то причине никогда не было возможным для быстрого выполнения. Проблема производительности из-за 32/64-разрядных версии также могут быть связаны с частотой процессора, учитывая то же соотношение 1: 3 медленных/быстрых скоростей в 32/64-битных версиях. Это указывает на то, что две версии используют процессор на самой низкой или более высокой частоте. будет на форуме страницы проекта.)

Я хотел бы знать, как выполнить это приложение JFrame, которое непрерывно записывает на экран и обеспечивает быструю работу в разных системах для всех будущих пользователей, то есть как полностью использовать процессор с использованием Java ,

Главный вызов класса Perceptron следующим образом и приоритет ЦП не влияет на скорость.

try { 
     final Perceptron m = new Perceptron("resource/Settings.txt", "resource/CrashReport.txt", "resource/presets"); 
     Thread go = new Thread() { 
      @Override 
      public void run() { 
       m.go(); 
      } 
     }; 
     go.setPriority(Thread.MAX_PRIORITY); 
     go.start(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
+1

Почему вы не можете использовать 64-битную Java на окнах, такую ​​же, как linux? без него и других параметров аппаратного обеспечения вы не проводите справедливого сравнения. – user3020494

+0

Я использую 64-битную версию на обеих системах в хороших условиях. Я искал ответ, помимо текущей темы, почему 64-битная версия работает быстро, а 32-разрядная версия медленная, во-первых, потому что я не знал, как быстро запускали ее NetBeans, а в противном случае выполнение было медленным. Это было около 3 лет назад. Затем я искал ответ для других пользователей, у которых не установлена ​​64-разрядная версия. У меня также были проблемы на моем старом компьютере с автоматическими обновлениями Java (например, по умолчанию 32-разрядная версия) и обновлениями драйверов, проблемами с предпочтительной версией Java на разных машинах и так далее. – GianniTee

ответ

0

я достиг очень хорошую скорость в Windows, установив дополнительные параметры процессора в моем Asus BIOS материнской платы, процессора ядра разравниванием = One Compute Unit Per Core. Этот параметр подходит для AMD A10 APU (процессор со встроенным графическим процессором). Производительность отличная, и частотные шкалы быстро отскакивают, если я открываю другое приложение и работаю в нем.

Необходимо, однако, знать, как обращаться с программным обеспечением CPU/GPU программно, то есть писать код на Java или код C для приложения «стартер», который поддерживает использование ЦП, поскольку это поможет другим пользователям которые сталкиваются с подобной ситуацией. Кроме того, несколько дней назад я использовал Ultra Fractal для «нагревания» процессора, и мое приложение работало быстро одновременно, поэтому приложение «стартер» могло это сделать, хотя это похоже на обходной путь вокруг.

Мое новое решение немного несовершенно. Частота периодически колеблется, поднимается и опускается немного через каждые 20 секунд. Кроме того, производительность компьютера свойственна! Давайте посмотрим, сравнение ...

3DMark Версия: 1,1 SystemInfo Версия: 4.22.0.0 Ноябрь 30 2013

Конфигурация

AMD A10-5700 AMD Radeon HD 7660D ASUSTeK COMPUTER INC. F2A85-M LE 64-разрядная версия Windows 8 (6.2.9200)

~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~

Автоматическое выравнивание сердечника

ICE STORM

3DMark Score 42261,0 3DMarks Графика Оценка 46575,0 Physics Score 31916,0 Графика Тест 1 180,9 кадров в секунду Графика Тест 2 229.9 кадров в секунду Тест физики 101,3 кадров в секунду

ОБЛАЧНЫХ GATE

3DMark Score 5595,0 3DMarks Графика Оценка 7987,0 Физика оценка 2732,0 Графика Тест 1 34,2 кадров в секунду Графика Тест 2 35,2 кадров в секунду Physics Test 8.67 fps

ОГНЕСТОЙКОСТЬ

3DMark Score 1049,0 3DMarks Графика Оценка 1159,0 Физика оценка 3734,0 Комбинированная оценка 377,0 Графика Тест 1 5,44 кадров в секунду Графика Тест 2 4.7 кадров в секунду Test Физика 11,9 кадров в секунду комбинированный тест 1,76 кадров в секунду

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Один вычислительный блок на ядро ​​... или это один ядро ​​на единицу расчета ...? неважно.

ДВС ШТОРМОВАЯ

3DMark Score 43003,0 3DMarks Графика Оценка 67942,0 Физика оценка 18822,0 Графика Тест 1 294,8 кадров в секунду Графика Тест 2 296,0 FPS Test Физика 59,8 FPS

ОБЛАКО GATE

3DMark Score 4406,0 3DMarks Графика Оценка 8052,0 Physics Score 1705,0 Графика Тест 1 33,8 кадров в секунду Графика Тест 2 36,3 кадров в секунду Physics Test 5,42 кадров в секунду

FIRE STRIKE

3DMark Score 1042.0 3DMarks Графика Оценка 1168.0 Оценка состояния здоровья 2356.0 Combined Score 395,0 Графика Тест 1 5,42 кадров в секунду Графика Тест 2 4,78 кадров в секунду Physics Test 7,48 кадров Комбинированный тест 1,84 кадров в секунду

0

С настройками по умолчанию в BIOS, проблема медленного исполнения под Windows, сводится к управлению питанием ЦП в Windows. Приложение Java не переключает переключатель CPU на более высокую частоту. В центре этого поведения находится текущий менеджер Catalyst графической карты Ati Radeon.В Catalyst можно зафиксировать частоту на самой высокой частоте, которая решает проблему, но не является настройкой по умолчанию. Кроме того, на панели управления в Power Plan дополнительные настройки также содержат самые низкие и самые высокие частоты процессора. По умолчанию они устанавливаются в самый широкий диапазон, но при установке их только на самое высокое значение решает проблему для Java. Этот параметр кажется мне неестественным. Благоприятным решением было бы управлять регулятором ЦП из программы по мере необходимости, если он уже не будет реагировать на требования самой системы. Однако он сам реагирует на многие программы C/C++ и стандартные тесты.

0

После нескольких месяцев ожидания последняя версия Ati Radeon DRIVER FOR WINDOWS позволяет процессору повышать частоту до максимума после загрузки моего приложения Java. Это фактор примерно в 3 раза ниже самой низкой частоты, что ускоряет работу приложения. Причина, по которой драйвер Ati Radeon влияет на процессор, - это, пожалуй, потому, что у меня есть комбинированный блок CPU/GPU, AMD A10 5700, поэтому устройство управляется как CPU, так и GPU. Asus AI Suite II был настроен на EPU: режим высокой производительности, в то время как параметры мощности Windows в основном имеют значения по умолчанию. Как вы можете видеть, есть три места, которые пытаются настроить одно и то же, т. Е. Параметры мощности. Драйвер Ati Radeon управляет этими параметрами через собственные пресеты, и это влияет на частоту процессора как базовой линии, так и масштабирования. Все возможные комбинации опций в предыдущие месяцы не удались в Windows. Эти проблемы не повлияли на Linux.

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

enter image description here enter image description here enter image description here enter image description here

Здесь вы можете увидеть, как она масштабируется когда мое приложение Java работает с новым драйвером Ati.

enter image description here

Однако путь к этому решению не было простым. После установки нового драйвера ничего нового не произошло. Я выбрал настройку Gaming в центре управления Radeon и получил фиксированное значение частоты, установленное в ее максимально возможной точке в любое время. Я знал, что Ati сделал новую функцию, но мне хотелось, чтобы частота масштабирования работала, поэтому я повторно выбрал параметры мощности по умолчанию в Asus AI Suite II и панели управления Windows, и поэтому результат появился.

Смежные вопросы