草庐IT

OPTIMIZATION

全部标签

linux - 磁盘上的 unix 套接字文件与 ubuntu 上的 tmpfs

如果将unix套接字文件放在磁盘而不是tmpfs/ramdisk(ubuntu)上,速度是否有差异(无论多么无穷小)? 最佳答案 仅限开放时间。该文件实际上从未获得任何内容;通过它发送的内容仅通过内存。文件系统仅用于提供系统范围的名称。 关于linux-磁盘上的unix套接字文件与ubuntu上的tmpfs,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8438474/

c++ - 将值作为函数参数传递还是计算两次?

我记得AgnerFog的优秀指南中提到64位Linux可以通过寄存器传递6个整数函数参数:http://www.agner.org/optimize/optimizing_cpp.pdf(第8页)我有以下功能:voidx(signedinta,uintb,charc,unitd,uinte,signedshortf);我需要传递一个额外的unsignedshort参数,这样一共就是7个。但是,我实际上可以从现有的6个中的一个中推导出第7个的值。所以我的问题是以下哪一项是提高性能的更好做法:在64位Linux上将已计算的值作为第7个参数传递不传递已经计算的值,而是使用现有的6个参数之一再

c++ - 将值作为函数参数传递还是计算两次?

我记得AgnerFog的优秀指南中提到64位Linux可以通过寄存器传递6个整数函数参数:http://www.agner.org/optimize/optimizing_cpp.pdf(第8页)我有以下功能:voidx(signedinta,uintb,charc,unitd,uinte,signedshortf);我需要传递一个额外的unsignedshort参数,这样一共就是7个。但是,我实际上可以从现有的6个中的一个中推导出第7个的值。所以我的问题是以下哪一项是提高性能的更好做法:在64位Linux上将已计算的值作为第7个参数传递不传递已经计算的值,而是使用现有的6个参数之一再

Linux PDF/Postscript 优化

所以我有一个使用Java和iText构建的报告系统。PDF模板是使用Scribus创建的。Java代码使用iText将数据合并到文档中。然后将文件复制到NFS共享,然后BASH脚本将它们打印出来。我使用acroread将它们转换为PS,然后对PS进行lpr。FOSS应用程序pdftops效率极低。我的主要问题是使用iText/Scribus生成的PDF非常大。我最近遇到了acroread呕吐的问题,因为它在大型(300页以上)文档上使用了4gb的内存。(Adobe将内容更新到64位的速度非常慢)。现在我可以在Windows上使用Adob​​e阅读器,并使用“减少文件大小”选项或其他名称

Linux PDF/Postscript 优化

所以我有一个使用Java和iText构建的报告系统。PDF模板是使用Scribus创建的。Java代码使用iText将数据合并到文档中。然后将文件复制到NFS共享,然后BASH脚本将它们打印出来。我使用acroread将它们转换为PS,然后对PS进行lpr。FOSS应用程序pdftops效率极低。我的主要问题是使用iText/Scribus生成的PDF非常大。我最近遇到了acroread呕吐的问题,因为它在大型(300页以上)文档上使用了4gb的内存。(Adobe将内容更新到64位的速度非常慢)。现在我可以在Windows上使用Adob​​e阅读器,并使用“减少文件大小”选项或其他名称

c++ - 使用 makefile 时如何禁用 GCC 优化?

我刚开始学习Linux,我在为我的一个C++项目禁用GCC优化时遇到了一些问题。项目是用这样的makefile构建的...make-j10&&makeinstall我在各种网站上读到,禁用优化的命令类似于...gcc-O0有人可以帮我将其应用于makefile而不是单独的代码吗?我已经搜索了几个小时,却一无所获。 最佳答案 在一些标准的makefile设置中你可以make-j10-eCPPFLAGS=-O0但是makefile可能会使用其他替代变量或覆盖环境。您需要向我们展示Makefile才能提出修改建议

c++ - 使用 makefile 时如何禁用 GCC 优化?

我刚开始学习Linux,我在为我的一个C++项目禁用GCC优化时遇到了一些问题。项目是用这样的makefile构建的...make-j10&&makeinstall我在各种网站上读到,禁用优化的命令类似于...gcc-O0有人可以帮我将其应用于makefile而不是单独的代码吗?我已经搜索了几个小时,却一无所获。 最佳答案 在一些标准的makefile设置中你可以make-j10-eCPPFLAGS=-O0但是makefile可能会使用其他替代变量或覆盖环境。您需要向我们展示Makefile才能提出修改建议

c - 将参数作为编译时常量或变量传递时函数性能之间的差异

在Linux内核代码中有一个用于测试位的宏(Linux版本2.6.2):#definetest_bit(nr,addr)\(__builtin_constant_p((nr))\?constant_test_bit((nr),(addr))\:variable_test_bit((nr),(addr)))其中constant_test_bit和variable_test_bit定义为:staticinlineintconstant_test_bit(intnr,constvolatileunsignedlong*addr){return((1UL>5]))!=0;}static__in

c - 将参数作为编译时常量或变量传递时函数性能之间的差异

在Linux内核代码中有一个用于测试位的宏(Linux版本2.6.2):#definetest_bit(nr,addr)\(__builtin_constant_p((nr))\?constant_test_bit((nr),(addr))\:variable_test_bit((nr),(addr)))其中constant_test_bit和variable_test_bit定义为:staticinlineintconstant_test_bit(intnr,constvolatileunsignedlong*addr){return((1UL>5]))!=0;}static__in

linux - 如何最有效地处理大量文件描述符?

似乎有几个选项可用于处理大量套接字连接的程序(例如Web服务、p2p系统等)。生成一个单独的线程来处理每个套接字的I/O。使用select将I/O多路复用到单个线程中的系统调用。使用poll多路复用I/O的系统调用(替换选择)。使用epoll系统调用以避免必须通过用户/系统边界重复发送套接字fd。生成多个I/O线程,每个线程使用轮询API多路复用连接总数中相对较小的一组。按照#5除了使用epollAPI为每个独立的I/O线程创建一个单独的epoll对象。在多核CPU上,我希望#5或#6具有最佳性能,但我没有任何硬数据支持这一点。网上搜索出现this描述作者测试上述方法#2、#3和#4的