我正在开发一个基于 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 的文件,没有这个线程它是 40 秒,而它接近 100 秒)
这与 schedparam 或其他有关吗?希望大家能给我一些建议,比如我需要检查什么。
再次感谢。