谁能解释为什么要遵循这些说明:
http://www.boost.org/doc/libs/1_59_0/more/getting_started/unix-variants.html#easy-build-and-install
...构建所有 Boost 需要我像样的机器 5 个小时,而 some folks报告说只用了 3 分钟 做了同样的事情?
除了上面提到的方法之外,还有另一种构建 Boost 的方法确实非常快(与几个小时相比,无论如何)。
我在 Darwin (Mac) 选项上使用 Clang 编译器。不确定它有多重要,但我有 16 GB RAM 和最新的 SSD。时钟频率为 2.3 Ghz。
编辑:我很高兴地报告,根据评论和答案,使用 ./b2 -j4 -d0 选项,我的编译时间缩短到了 13 分钟。此外,-jN 选项未在默认 --help 的可用选项集中列出,您必须改为调用 --help-options 查看这些额外的更“高级”技术。
最佳答案
我只是用几个不同的构建配置运行了几个测试。
硬件:2012 款 MacBook Pro(2.3Ghz Ivy Bridge i7 [i7-3615QM]),出厂 SSD 和 16GB 内存。
软件:带有 Xcode 7 的 Mac OS X 10.11.1(Apple LLVM 版本 7.0.0 clang-700.1.76)。来自网站的 Boost 1.59.0 的新拷贝。
我测试了以下构建命令:
默认构建:
./bootstrap.sh && ./b2 -j N
构建强制链接libc++
./bootstrap.sh && ./b2 toolset=clang cxxflags="-stdlib=libc++"linkflags="-stdlib=libc++"-j N
我为每个 N 尝试了三个不同的值:1(单线程)、4(匹配物理核心)和 8(匹配超线程核心)。
默认链接:
链接 libc++:
结论:即使不是全新的,Boost 也不必花一整天的时间在带有 SSD 的多核系统上构建。使用默认(单线程)构建确实比并行构建花费更长的时间。在 OS X 上使用 clang 构建的 Boost 确实从超线程中受益匪浅。与 libc++ 的链接似乎也快了一点。
关于c++ - 在几分钟内构建所有的 Boost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33566782/
我试图获取一个长度在1到10之间的字符串,并输出将字符串分解为大小为1、2或3的连续子字符串的所有可能方式。例如:输入:123456将整数分割成单个字符,然后继续查找组合。该代码将返回以下所有数组。[1,2,3,4,5,6][12,3,4,5,6][1,23,4,5,6][1,2,34,5,6][1,2,3,45,6][1,2,3,4,56][12,34,5,6][12,3,45,6][12,3,4,56][1,23,45,6][1,2,34,56][1,23,4,56][12,34,56][123,4,5,6][1,234,5,6][1,2,345,6][1,2,3,456][123
我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server
当我的预订模型通过rake任务在状态机上转换时,我试图找出如何跳过对ActiveRecord对象的特定实例的验证。我想在reservation.close时跳过所有验证!叫做。希望调用reservation.close!(:validate=>false)之类的东西。仅供引用,我们正在使用https://github.com/pluginaweek/state_machine用于状态机。这是我的预订模型的示例。classReservation["requested","negotiating","approved"])}state_machine:initial=>'requested
我有这个html标记:我想得到这个:我如何使用Nokogiri做到这一点? 最佳答案 require'nokogiri'doc=Nokogiri::HTML('')您可以通过xpath删除所有属性:doc.xpath('//@*').remove或者,如果您需要做一些更复杂的事情,有时使用以下方法遍历所有元素会更容易:doc.traversedo|node|node.keys.eachdo|attribute|node.deleteattributeendend 关于ruby-Nokog
我想获取模块中定义的所有常量的值:moduleLettersA='apple'.freezeB='boy'.freezeendconstants给了我常量的名字:Letters.constants(false)#=>[:A,:B]如何获取它们的值的数组,即["apple","boy"]? 最佳答案 为了做到这一点,请使用mapLetters.constants(false).map&Letters.method(:const_get)这将返回["a","b"]第二种方式:Letters.constants(false).map{|c
在编写Ruby(客户端脚本)时,我看到了三种构建更长字符串的方法,包括行尾,所有这些对我来说“闻起来”有点难看。有没有更干净、更好的方法?变量递增。ifrender_quote?quote="NowthatthereistheTec-9,acrappyspraygunfromSouthMiami."quote+="ThisgunisadvertisedasthemostpopularguninAmericancrime.Doyoubelievethatshit?"quote+="Itactuallysaysthatinthelittlebookthatcomeswithit:themo
如何将send与+=一起使用?a=20;a.send"+=",10undefinedmethod`+='for20:Fixnuma=20;a+=10=>30 最佳答案 恐怕你不能。+=不是方法,而是语法糖。参见http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_expressions.html它说Incommonwithmanyotherlanguages,Rubyhasasyntacticshortcut:a=a+2maybewrittenasa+=2.你能做的最好的事情是:
我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我
我正在尝试在配备ARMv7处理器的SynologyDS215j上安装ruby2.2.4或2.3.0。我用了optware-ng安装gcc、make、openssl、openssl-dev和zlib。我根据README中的说明安装了rbenv(版本1.0.0-19-g29b4da7)和ruby-build插件。.这些是随optware-ng安装的软件包及其版本binutils-2.25.1-1gcc-5.3.0-6gconv-modules-2.21-3glibc-opt-2.21-4libc-dev-2.21-1libgmp-6.0.0a-1libmpc-1.0.2-1libm
我们有一个字符串:“”这个正则表达式://i如何从当前字符串中获取所有匹配项? 最佳答案 "".scan(//)参见scan在ruby-docs上 关于ruby-如何遍历Ruby中所有正则表达式匹配的字符串?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6857852/