我正在开发一个需要快速创建和写入文件的 android 项目。我为此目的使用 ndk,发现从主线程运行时 fopen() 调用需要的时间不确定,从最短约 30 毫秒到几秒钟。打开文件后,我需要计算一些结果,将结果存储到打开的文件中,然后关闭它。
我正在尝试将其放入另一个线程,但不确定它是否有帮助以及如果有帮助如何处理调度问题。我还在考虑可能在应用程序开始时打开许多这些文件描述符,并通过应用程序维护一个池。有人帮助指出正确的方向吗?
我正在开发一个需要快速创建和写入文件的 android 项目。我为此目的使用 ndk,发现从主线程运行时 fopen() 调用需要的时间不确定,从最短约 30 毫秒到几秒钟。打开文件后,我需要计算一些结果,将结果存储到打开的文件中,然后关闭它。
我正在尝试将其放入另一个线程,但不确定它是否有帮助以及如果有帮助如何处理调度问题。我还在考虑可能在应用程序开始时打开许多这些文件描述符,并通过应用程序维护一个池。有人帮助指出正确的方向吗?
听起来你正试图达到非常低的水平。您是否考虑过使用open()
write()
和close()
系统调用。c-library fopen 调用为您做了一些好事,例如缓冲,但系统调用可能更快。您将不得不进行分析,但我认为您会看到更低的延迟。
int fd = open("myfilepath",O_WRONLY|O_CREAT);
write(fd,myData, myDataSize);
close(fd);
你会在这里找到更多信息。 http://www.tutorialspoint.com/unix_system_calls/open.htm