gpt4 book ai didi

数百万次执行后的 C++ 程序稳定性

转载 作者:行者123 更新时间:2023-11-30 02:52:25 26 4
gpt4 key购买 nike

我有一个 C++ 程序,主要执行矩阵乘法、加法等操作。

问题是,当计算执行大约 300 万次时,会发生 EXC_BAD_ACCESS。

一个问题执行几百万次,执行几个小时,有没有可能出现的问题?

节目详情:

该程序只是对不同范围的值进行简单的计算,因此它同时在 6 个线程上执行。线程之间没有资源共享。

程序中似乎没有明显的问题,因为:

  1. 没有内存泄漏,我用Instruments确认过,程序内存大小稳定。
  2. 程序可以在每个线程上执行至少 200 万次而不会出现任何问题,但几乎可以保证 EXC_BAD_ACCESS 异常有时会在某个线程上出现。 (异常发生在我的程序的 2 次尝试中 (2/2) )

关于矩阵乘法:

有时矩阵的大小约为 2*2 乘以 2*1000。

矩阵的元素是一个自定义的复数类。

元素的值由 rand() 随机生成并转换为 float。

结构是这样的:

class Complex
{
private:
float _real, _imag;
public:
// getters, setters and overloaded operators
};

class Matrix
{
private:
Complex **_values;
int _row,_col;
public:
getters, setters and overloaded operators
};

非常感谢!

非常欢迎任何可能的崩溃原因!

最佳答案

EXC_BAD_ACCESS 意味着您取消引用了一个不指向进程当前内存空间的指针。这是您的代码中的错误。在调试器下运行它直到失败,然后查看失败语句中的变量值。它可以很简单,也可以非常微妙。

关于数百万次执行后的 C++ 程序稳定性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18938804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com