我有一个大型项目,我已经实现了预编译头.我也希望能够使用distcc.根据谷歌的编码纸4.12节在这里
gcc版本3.3包含一些性能改进,使得distcc不那么直接有用.
一个是预编译头,在读取一组公共头文件后,编译器的内部状态被转储到磁盘.这对于包含大量固定标头集的程序非常有用,其中解析标头占用了大部分编译时间.目前,distcc可以通过将.pch状态文件放在共享文件系统上来支持这一点.未来可能会为distcc添加更好的解决方案.
我不认为使用共享文件系统对我来说是一个很好的解决方案.但后来也提到了一个潜在的补丁,可以更好地将预编译的头文件和distcc一起工作:https://lists.samba.org/archive/distcc/2008q2/003646.html.这将涉及DISTCC_PCH在客户端上设置(或使用编译器选项-fpch-preprocess,请参见此处),并将pch选项添加到DISTCC_HOSTS服务器.我试过这个,但它似乎没有用,所以我怀疑补丁没有集成.
在共享文件系统之上和之上是否支持distcc中的预编译头文件?或者让技术合作的任何合理直接的方式?
更新:我现在有一种情况,我使用预编译头编译为本地构建和distcc构建我强制包括预编译头文件,以便本地和distcc构建两个编译完全相同的源.通过仔细选择预编译头文件,我可以获得比以前快40%的本地调试版本,而distcc构建只会慢大约4%.我希望以某种方式结合预编译的头文件和distcc以获得加速,比如10%或20%,使用distcc构建,只需要相当少的努力和侵入性(加速构建不是我的主要责任,除了在企业环境我能做的事情有限.
这是一个有趣的问题,我试图在前几天工作.是否有可能强制一个的有效数或指数与Python中的float另一个相同float?
问题出现了,因为我试图重新缩放某些数据,以便min和max匹配另一个数据集.但是,我重新调整后的数据略有偏差(大约小数点后6位),这足以引起问题.
提出一个想法,我有f1和f2(type(f1) == type(f2) == numpy.ndarray).我想要np.max(f1) == np.max(f2) and np.min(f1) == np.min(f2).为此,我做到了:
import numpy as np
f2 = (f2-np.min(f2))/(np.max(f2)-np.min(f2)) # f2 is now between 0.0 and 1.0
f2 = f2*(np.max(f1)-np.min(f1)) + np.min(f1) # f2 is now between min(f1) and max(f1)
Run Code Online (Sandbox Code Playgroud)
结果(仅作为示例)将是:
np.max(f1) # 5.0230593
np.max(f2) # 5.0230602 but I need 5.0230593
Run Code Online (Sandbox Code Playgroud)
我最初的想法是,强制指数float将是正确的解决方案.我找不到多少,所以我为我的需要做了一个解决方法:
exp = 0
mm = np.max(f1)
# find where the decimal …Run Code Online (Sandbox Code Playgroud) 以下代码生成编译器错误:
'BaseTest :: _ protMember':无法访问类'BaseTest'中声明的受保护成员
为什么我不能访问我的成员变量_protMember,class SubTest即使它受到保护?
class BaseTest
{
public:
BaseTest(){};
BaseTest(int prot)
{
_protMember = prot;
};
protected:
int _protMember;
};
class SubTest : public BaseTest
{
// followup question
SubTest(const SubTest &subTest)
{
_protMember = subTest._protMember; // this line compiles without error
};
SubTest(const BaseTest &baseTest)
{
_protMember = baseTest._protMember; // this line produces the error
};
};
Run Code Online (Sandbox Code Playgroud)
后续问题:
为什么在添加的拷贝构造函数中我可以访问另一个实例的受保护成员?
我有兴趣实现一个我读过的特定的Shellsort方法,它具有与bitonic排序相同的时间复杂度.然而,对于任何整数p和q,它要求间隙序列是满足表达式2 ^ p*3 ^ q的数字序列[1,N-1].在外行人的术语中,该范围内的所有数字只能被2和3整除一次.是否有相对有效的方法来生成此序列?
我有这个script.php文件,我想在我的linux/apache服务器上作为cron作业运行.
但是,我不希望公众访问www.mycompanyname.com/script.php并同时运行该脚本.
我们怎么能阻止这种情况?我们如何才能将脚本限制为服务器的访问权限?它是使用chmod还是在.htaccess文件中设置一些内容?
有什么建议?
let rec fact = function | 0 -> 1 | n-> n * fact(n-1);;
Run Code Online (Sandbox Code Playgroud)
作者还指出,对包含的表达式的评估fact可能不会终止并添加到脚注中
需要注意的是像一个文字
factñ是不是 F#的一部分.它是一种模式,通过用合适的F#实体替换元符号n,可以获得程序块.
这已经超出了我的头脑!虽然我对其fact工作方式以及其他语言的递归感到满意,但我看不出作者在这里所做的区别.任何解释都欢迎.
我有一个问题如下:
给你的物品类型的重量w1,w2,w3,.... wn; 这些类型的每个项目数量都是无限的.
你有一个能够承载重量W的容器.
找到适合容器的最大重量总和的项目组合,不超过最大重量W.
例如:
我有三种带有重量的物品:
- w = 5
- w = 10
- w = 20
我有一个重量容量容器:W = 25
可能的解决方案是:
- 5项w = 5,0项w = 10,0项w = 20;
- 1项w = 5,0项w = 10,1项w = 20
我能够使用动态编程方法解决问题; 但是,我的问题是确定这类问题的名称以及用于解决问题的算法.尽管进行了广泛的搜索,我似乎无法用手指指着它.
对我来说,它类似于bin-packing问题,除了有限数量的bin,无限量的项目,并且在多项式时间内无法解决.可能是一个离散的背包,项目重量=项目利润和每个项目的无限数量?
我在我的项目中使用stl容器,我发现了一个我无法解释的奇怪错误.我们考虑以下代码:
#include <iostream>
#include <vector>
int main(int argc, char** argv)
{
std::vector<bool> vec;
vec.resize(5, false);
std::cout << vec.at(0);
}
Run Code Online (Sandbox Code Playgroud)
这会按预期输出0,但如果我使用drmemory运行内存检查,则会发现未初始化的读取.任何人都可以帮助理解这种行为吗?
平台:win32; 编译器:mingw32 - gcc 4.7.2; Drmemory 1.6.0 - 构建2
我刚刚开始ddply并发现它非常有用.我想总结一个数据框,并根据汇总列是否具有特定值来删除最终输出中的某些行.这HAVING和GROUP BYSQL一样.这是一个例子:
input = data.frame(id= c( 1, 1, 2, 2, 3, 3),
metric= c(30,50,70,90,40,1050),
badness=c( 1, 5, 7, 3, 3, 99))
intermediateoutput = ddply(input, ~ id, summarize,
meanMetric=mean(metric),
maxBadness=max(badness))
intermediateoutput[intermediateoutput$maxBadness < 50,1:2]
Run Code Online (Sandbox Code Playgroud)
这给出了:
id meanMetric
1 1 40
2 2 80
Run Code Online (Sandbox Code Playgroud)
这就是我想要的,但我可以在ddply声明中以一个单一的步骤做到吗?