주로 행렬 곱셈, 덧셈 등을 수행하는 C++ 프로그램이 있습니다.수백만 번의 실행 후 C++ 프로그램 안정성
문제는 계산이 약 3 백만 번 수행 될 때 EXC_BAD_ACCESS가 발생한다는 것입니다.
문제가 수백만 번 또는 몇 시간 동안 실행될 때 발생할 수있는 문제가 있습니까? 프로그램
상세 :
프로그램은 다른 범위의 값에 간단히 계산이므로 동시에 6 개 스레드상에서 실행된다. 스레드 간에는 자원 공유가 없습니다.
이후 프로그램에는 분명 문제가 없을 것 같다 : 더 메모리 누수가 없다
- , 나는 악기를 사용하여이 확인했습니다, 그리고 프로그램의 메모리 크기는 안정적이다.
- 프로그램은 아무런 문제없이 각 스레드에서 최소 200 만 번 실행할 수 있지만 EXC_BAD_ACCESS 예외가 일부 스레드에서 발생하는 것으로 거의 보장됩니다. 때로는 행렬의 크기가 약 2 * 곱하기 2 * 1000 2
: 행렬의 곱셈에 대해
(예외는 프로그램의 제 2 개 시도 (2/2)에서 발생).
매트릭스의 요소는 사용자 지정 복합 번호 클래스입니다.
요소의 값은 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'는 대개 코드의 버그 또는 불안정한 하드웨어를 의미합니다. – Mysticial
실제 코드를 보지 않고도 알기가 어렵습니다. – Escualo
# 신비 : 음 ... 문제의 버그가있을 수 있습니다 ... 아직 명확하지 않습니다 ... 버그의 유형에 대한 힌트를 좀 주시겠습니까? 아 ... 불안정한 하드웨어가 가능합니다 ... 맥 OS X 10.8, Xcode 5 with llvm 5를 사용하고 있습니다. 우분투에서 이런 유형의 과학 계산이 더 잘 된 것 같습니다. complier에 대한 개조하면 도움이 될 것입니다 모르겠다 ... – Lewen