g++在编译时挂起
g++ hangs when compile
我有一小段代码可以用g++很好地编译。然后我把一些数组变大:
complex<double> densop[a][b][c]
其中a=b=400, g=500。当我用
编译时g++ -L/.../gsl -I/../gsl -O2 -lgsl -lgslcblas -Wall -o sim1 sim1.cp
编译器挂起(5h+),与编译时相比没有额外的警告。
我认为它可能是内存,但顶部显示CPU运行在100%和%MEM大约一半。顺便说一句,我还全局声明了这个数组,这样它就不会对堆栈造成沉重的负担。
另一个不同的情况是,当我#包含两个数据文件时,第二个情况更大(30和15 MB)。
gcc版本4.1.2,内存30GB。尝试使用- 0和-O2标志。
提前感谢!
我确实看到过c++在将大型常量数据数组解析为c++源代码时性能很差的情况。一种改进方法是将大数据数组存储在输入文件中,并在程序启动时将它们加载到内存中。这将修复编译性能问题,但代价是在运行时进行少量的启动处理。
请注意,即使您的常量数组编译并运行,它们仍然需要调用complex<double>
构造函数数百万次,因此从文件中读取可能不会花费太多。
相关文章:
- 挂起和取消挂起一个文件DLL
- 如何防止C++遗留代码中的挂起指针
- 为什么所有C++编译器都会崩溃或挂起此代码
- 我编写了代码将十进制分数转换为其二进制等效数.它编译得很好,但在执行时挂起
- 构建挂起,即使是适度的文件大小
- 循环挂起迭代的 std::擦除 on std::list
- Poco::Net::FTPClientSession 在 open() 方法上挂起 129 秒,如果 ftp 主机不存
- Node.js fs.open() 在尝试打开 4 个以上的命名管道 (FIFO) 后挂起
- 从不同进程中的另一个线程挂起/恢复线程或进程
- Boost (Beast) websocket:同步写入挂起
- 为什么析构函数挂起
- 使用互斥会挂起程序
- 在C++和 Python 程序中使用命名管道的 IPC 挂起
- C 11 std :: This_thread :: Sleep_until()用GCC 4.8.5编译时挂起
- Visual Studio 2015 在编译和链接项目时挂起
- mingw32:所有编译的可执行文件都挂起
- VS2013在编译时会挂起
- g++在编译时挂起
- 内联函数中的静态局部变量导致VS2015编译代码中的挂起
- 用FlasCC编译的c++程序使用-O4 (LTO)挂起虚拟调用