【发布时间】:2012-03-12 15:25:31
【问题描述】:
我正在开发一个基于 FUSE 的文件系统项目。我想添加一些预先阅读的内容。所以我创建了一个线程来处理这样的任务,但似乎我让它比我想象的要慢。(即使我只是添加了一个空闲线程,它也会让我的程序变得比没有那个慢得多,但这并没有发生当我将此功能添加到我的服务器程序时,它不使用保险丝)
我没有简单地使用fuse_main函数,而是阅读了sshfs的代码,并尝试使用以下函数自己初始化它,
fuse_parse_cmdline
fuse_mount
fcntl
fuse_new
fuse_daemonize
fuse_set_signal_handlers
fuse_loop_mt
并且不添加线程,它运行得很好,但是在我添加这个线程之后
pthread_create(&tid, NULL, test, NULL); // function test is just a while(1){}
变慢了(读取一个100M的文件,没有这个线程是40s,有这个是将近100s)
这与 schedparam 或其他有关吗? 希望大家能给我一些建议,比如我需要检查什么。
再次感谢。
【问题讨论】: