Bonsoir, j'utilise une class qui génére des images(sur disque) via une Dll qui utilise un bridge JNI.
Dans ce fonctionnement je mets environ 23 minutes pour générer 2000 images.
Lorsque j'utilise directement cette classe via une appli ecrit en JAVA, le temps de génération est de 3 minutes pour 2000 images.
Quelqu'un a-t-il déjà rencontrer un problème similaire. peut-etre dans la configuration de la JVM dans delphi je peux augmenter la quantité de mémoire ou la priorité du thread dans lequel est géré la JVM?
voici la configuration et l'appel de la class :
JavaVM := TJavaVM.Create(JNI_VERSION_1_4,path + 'bin\client\jvm.dll');
Options[0].optionString := pchar('-Djava.class.path='+path+'lib\ext\');
options[1].optionString := '-Djava.compiler=NONE';
options[2].optionString := '-Xnoagent';
VM_args.nOptions := 3;
VM_args.version := JNI_VERSION_1_4;
VM_args.options := @Options;
Errcode := JavaVM.LoadVM(VM_args);
appel
JavaVM.JavaVM^.AttachCurrentThread(JavaVM.JavaVM, @(env) , nil);
JNIEnv := TJNIEnv.Create(env);
try
Cls := JNIEnv.FindClass('com/ninsight/titleGen/PageGenerator');
if Cls = nil then
raise Exception.create('Could not find java class');
generatepagesmethod := JNIEnv.GetStaticMethodID(cls, 'generatePage', '(Ljava/lang/StringI');
if (generatepagesmethod = nil) then
raise Exception.create('Could not find method in java');
text := JNIEnv.WideStringToJString( AText );
result := JNIEnv.CallStaticIntMethod(Cls, generatepagesmethod, [text]);
finally
jnienv.free();
end;
JavaVM.JavaVM^.DetachCurrentThread(JavaVM.JavaVM);
Merci d'avance,
Cdlt
Partager