2013-02-13 2 views
1

когда нажатие кнопки запуска ... на выходе ....Вы можете помочь мне с этой ошибкой в ​​моем проекте?

java.lang.OutOfMemoryError 
OpenCV Error: Insufficient memory (Failed to allocate 6220800 bytes) in unknown function, file ..\..\..\src\opencv\modules\core\src\alloc.cpp, line 52 
Exception in thread "Thread-4" java.lang.RuntimeException: ..\..\..\src\opencv\modules\core\src\alloc.cpp:52: error: (-4) Failed to allocate 6220800 bytes  
    at com.googlecode.javacv.cpp.opencv_core.cvCloneImage(Native Method) 
    at com.googlecode.javacv.cpp.opencv_core$IplImage.clone(opencv_core.java:521) 
    at vidtracking.MainView.backgroundSubtraction(MainView.java:666) 
    at vidtracking.MainView.access$1000(MainView.java:32) 
    at vidtracking.MainView$8.run(MainView.java:461) 
+1

Обмен сообщениями будет более полезен при ответе на этот вопрос. – Naved

+0

похоже, что вам нужно выделить больше памяти в JVM для этого проекта. – KyelJmD

+0

Вы используете его из затмения? – zengr

ответ

0
java.lang.OutOfMemoryError OpenCV Error: Insufficient memory 

Кажется, вы загружаете большой файл в память. Попробуйте increase memory using -Xms and -Xmx settings.

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

+0

Да, этот файл слишком большой, поэтому он заставляет меня переустанавливать мои netbeans или opencv? Можете ли вы дать мне решение? – user2067185

0

Вам необходимо выделить по меньшей мере 6220800 байт (то есть ~ 6mb).
Запустите Java приложение с этими настройками Jvm (выделить больше размер кучи):

java myapp.jar -Xms10m -Xmx10m 

Для затмения:

Windows Preferences -> java -> Installed JREs: 
Select JRE/JDK you are using 
Click Edit 
Set VM arguments: -Xms10m -Xmx10m 
Start your app again. 
1
java.lang.OutOfMemoryError OpenCV Error: Insufficient memory 

Это исключение Потому что. OutOfMemoryError

, когда виртуальная машина Java не может выделить объект, потому что это из памяти, и не больше памяти не может быть предоставлена ​​сборщиком мусора. Объекты OutOfMemoryError могут быть созданы виртуальной машиной, как если бы подавление было отключено и/или трассировка стека не была доступна для записи.

Общие решения в данном случае являются:

  1. Оптимизация кода, чтобы использовать меньше памяти и/или повторно использовать объекты вместо создания новых, таким образом, уменьшая количество раз пробеги сборщик мусора. Если вы создаете много временных объектов (например, в цикле), вы должны попытаться их повторно использовать.
  2. Увеличить размер кучи, используя Xmx переключатель, например. -Xmx512m (вы можете помочь найти правильное значение, подключившись к JVM с помощью JXM и Jconsole).
  3. Отключить проверку ошибок с помощью -XX:-UseGCOverheadLimit Третий подход приведет только к другим сообщениям об ошибках - связанный с кучей java.lang.OutOfMemoryError.
  4. Добавить -XX:+HeapDumpOnOutOfMemoryError в JAVA_OPTS и проанализировать дамп с помощью IBM Memory Analyzer (часть IBM Support Assistant Workbench), который ищет утечки памяти (см. Ссылки).

Только для netbeans.

Правильный путь к правой кнопкой мыши на проекте и выберите «Свойства », а затем «Run»; вы можете соответствующим образом настроить параметры виртуальной машины (-Xmx256m, например). Это должно выглядеть примерно так:

enter image description here

0

Ее симптом JVM аварии или нет памяти для выделения ресурсов в виртуальной машине Java. попробуйте настроить свою программу или увеличить память JVM.

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