java程序通过jni方法调用c的写文件函数write,发现效率很低;测试了一下,纯粹用c写的程序的方法,1秒钟可以写完的500K左右的文件,在用JNI调用的方法,写同样的文件花了10秒左右;好像效率特别低,不知道是我的程序的问题,还是JNI写文件的先天不足问题;java程序如下:
[code]
public  native int writeFile(int i, byte abyte0[]);
[/code]在C里面实现如下:
[code]
JNIEXPORT jint JNICALL Java_JClient_EasyAppIDL_1i_writeFile
  (JNIEnv *env, jobject obj, jint jfd, jbyteArray jbuf)
{
jbyte* p;
jbyte* p2;
int    len=0;
int    ret = 0;
int fd = (int)jfd; char *pp=NULL; p = env->GetByteArrayElements( jbuf, FALSE);
len = env->GetArrayLength( jbuf);
//p2 = (jbyte *)malloc(len+1); memcpy(p2, p, len); p2[len] = 0; //env->ReleaseByteArrayElements( jbuf, p, 0); pp = (char *)p;
//ret = write(fd, (char *)p2, len); ret = write(fd, pp, len);
printf("write 1111file len:%d\n",len); //env->ReleaseByteArrayElements( jbuf, p, 0);

//free(p2);
return ret;
}
[/code]请问怎么提高效率??