Als ik vanuit een c++ library een array naar Java probeer terug te sturen, dan crasht de JVM na verloop van tijd met een stack overflow error. Soms crasht ie na een aantal keren, andere keren loopt het een hele tijd goed. Ik ben al overgeschakeld naar de IBM JVM, omdat de Sun al helemaal een ramp is. Volgens mij komt het omdat de garbage collector te traag, of helemaal niet zijn werk doet, en het array niet verwijdert. Ik geef het array op de volgende manier door:
Het array is 225 kb groot, dus zo groot is het helemaal niet.
C++:
1
2
3
| thresholdArray = env->NewIntArray(size); env->SetIntArrayRegion(thresholdArray, 0, size, tempThresh); return thresholdArray; |
Het array is 225 kb groot, dus zo groot is het helemaal niet.