Увеличение памяти создает разницу в выводе или поведении Java-приложения? - PullRequest
1 голос
/ 26 мая 2010

Я создал одно приложение java-swing.
Приложение отлично работает на моем компьютере.
Но он не работает идеально на клиентских ПК.
Раньше у меня было увеличение виртуальной памяти на моем компьютере.
Так что мой вопрос ..

Меняет ли ограничение памяти, влияет или меняет поведение приложения?
Есть ли что-то, что меняет поведение Java-приложения? bcz одно и то же приложение отлично работает на моем компьютере, и такое же приложение не работает идеально на клиентском компьютере? и нет проблем в коде, я проверил три раза.

EDIT:
Это один снимок экрана моего приложения, если вы видите на снимке экрана, есть одна таблица, в которой много изображений.

Теперь на моем компьютере я не вижу двойных изображений в этой таблице.

Но на клиентском ПК я вижу двойные изображения в этой таблице, но если вы нажмете на одно из изображений, то после нажатия изображение, которое показывалось ранее, изменилось.

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

Но теперь на моем компьютере в этой таблице нет двойных изображений.


«увеличить виртуальную память» означает изменение размера кучи виртуальной памяти jvm путем добавления ...

java -Xmx512m

Ответы [ 4 ]

3 голосов
/ 26 мая 2010
  • Очевидно, что если приложение работает с OutOfMemoryError, то , увеличив максимальный размер кучи , может это исправить.
  • Неисправная (на аппаратном уровне) память может вызвать сбой программ Java. Это можно диагностировать с помощью memtest tool
  • Иногда Swing расходится с аппаратным ускорением графики , особенно с встроенными графическими адаптерами, которые разделяют основную память. Это можно исправить, уменьшив аппаратное ускорение в Windows или получив новые драйверы.
2 голосов
/ 26 мая 2010

Изменения в объеме памяти и, следовательно, в объеме обмена, необходимом для предоставления памяти всем приложениям, могут изменить время вашей программы.

Если ваша программа подвержена изменениям времени (то есть, если она зависит от времени или работает только в «лучшем случае»), то эти изменения времени могут повлиять на поведение вашего приложения.

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

2 голосов
/ 26 мая 2010

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

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

Что делает ваша программа? Работает ли он с файлами или большими наборами данных?

Вы не сказали, как он не работает на компьютере клиента. Это медленно или вылетает?

0 голосов
/ 26 мая 2010

Вы должны проверить, если проблема с памятью. Используйте ProcessManager или другую подобную программу, чтобы проверить, как ваша программа использует память с точки зрения ОС. Вы можете использовать jconsole, чтобы проверить, как это выглядит с точки зрения Java.

Запустите ваше приложение с JDK и добавьте к его вызову:

-Dcom.sun.management.jmxremote.port=9876 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false 

Затем запустите jconsole и посмотрите свое приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...