小编Too*_*one的帖子

可以使用预编译的头文件与distcc一起使用吗?

我有一个大型项目,我已经实现了预编译头.我也希望能够使用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构建,只需要相当少的努力和侵入性(加速构建不是我的主要责任,除了在企业环境我能做的事情有限.

gcc precompiled-headers distcc

8
推荐指数
0
解决办法
667
查看次数

是否有可能强制浮点数的指数或有效数与另一个浮点数(Python)相匹配?

这是一个有趣的问题,我试图在前几天工作.是否有可能强制一个的有效数或指数与Python中的float另一个相同float

问题出现了,因为我试图重新缩放某些数据,以便min和max匹配另一个数据集.但是,我重新调整后的数据略有偏差(大约小数点后6位),这足以引起问题.

提出一个想法,我有f1f2(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)

python floating-point numpy floating-accuracy

8
推荐指数
2
解决办法
646
查看次数

如何查看SWIG接口TensorFlow背后的C++函数调用

我正在研究TensorFlow,我想知道每个Python函数与SWIG接口背后的相应C++函数之间的关系.换句话说,我希望能够确切地知道为TensorFlow应用程序的每行Python代码调用哪些C++函数.

我已经看到了如何调试Python代码在这里以及如何显示在哪一行代码分段故障发生在这里,但在这方面,我只能够看到一个错误,而不是我希望能够知道每个C++函数调用,即使代码中没有错误(目前使用gdb调试我能够看到系统调用和动态库调用,但不能查看C++函数调用).

谢谢

c++ python swig gdb tensorflow

8
推荐指数
1
解决办法
694
查看次数

为什么我的对象不能访问公共基类中定义的另一个对象的受保护成员?

以下代码生成编译器错误:

'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)

后续问题:

为什么在添加的拷贝构造函数中我可以访问另一个实例的受保护成员

c++

7
推荐指数
2
解决办法
3805
查看次数

生成升序2 ^ p*3 ^ q

我有兴趣实现一个我读过的特定的Shellsort方法,它具有与bitonic排序相同的时间复杂度.然而,对于任何整数p和q,它要求间隙序列是满足表达式2 ^ p*3 ^ q的数字序列[1,N-1].在外行人的术语中,该范围内的所有数字只能被2和3整除一次.是否有相对有效的方法来生成此序列?

sorting algorithm math

7
推荐指数
2
解决办法
3414
查看次数

在linux/apache服务器上的cron作业上运行script.php但限制公共访问php文件

我有这个script.php文件,我想在我的linux/apache服务器上作为cron作业运行.

但是,我不希望公众访问www.mycompanyname.com/script.php并同时运行该脚本.

我们怎么能阻止这种情况?我们如何才能将脚本限制为服务器的访问权限?它是使用chmod还是在.htaccess文件中设置一些内容?

有什么建议?

php cron public

6
推荐指数
3
解决办法
2168
查看次数

"架构"和"元符号"在F#表达式中的含义是什么?

我正在编写一关于F#的教科书并介绍了阶乘函数

let rec fact = function | 0 -> 1 | n-> n * fact(n-1);;
Run Code Online (Sandbox Code Playgroud)

作者还指出,对包含的表达式的评估fact可能不会终止并添加到脚注中

需要注意的是像一个文字fact ñ不是 F#的一部分.它是一种模式,通过用合适的F#实体替换元符号n,可以获得程序块.

这已经超出了我的头脑!虽然我对其fact工作方式以及其他语言的递归感到满意,但我看不出作者在这里所做的区别.任何解释都欢迎.

f#

6
推荐指数
1
解决办法
252
查看次数

当我想选择尽可能充满容器的物品时它叫什么 - 我应该使用什么算法?

我有一个问题如下:

给你的物品类型的重量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,无限量的项目,并且在多项式时间内无法解决.可能是一个离散的背包,项目重量=项目利润和每个项目的无限数量?

algorithm math optimization

6
推荐指数
1
解决办法
546
查看次数

C++ std :: vector <bool>使用drmemory给出了未初始化的读错误

我在我的项目中使用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

c++ stl dr-memory

6
推荐指数
1
解决办法
442
查看次数

有什么方法可以在ddply中进行过滤和汇总吗?

我刚刚开始ddply并发现它非常有用.我想总结一个数据框,并根据汇总列是否具有特定值来删除最终输出中的某些行.这HAVINGGROUP 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声明中以一个单一的步骤做到吗?

r plyr dplyr

6
推荐指数
1
解决办法
1297
查看次数