몇 개의 큰 (100,000에서 10,000,000까지) 객체 벡터가 있습니다.) (구조체의 벡터에서 구조체에서 std :: string 대신 char []을 사용하여 POD가되어야합니까?
typedef struct {
std::string name;
int number;
long offset;
}
나는 개체의 많은 수를 포함하는 벡터를 재사용 할,하지만 난 분명히 호출 할 때 걱정 해요 :
typedef struct {
char name[64];
int number;
long offset;
}
대신 : 나는 같은 구조에 충실해야 , std :: string 함께 구조체를 사용하는 경우, 나는 1,000,000 소멸자 호출 결국 것입니다.
std :: string 대 char []을 사용하면이 문제가 자주 발생합니까?
루프에서 10000000 개의 요소를 만들고 지우고 있습니까? 그리고 정말로 모든 단일 요소가 메모리에 저장 될 필요가 있습니까? – milleniumbug
@milleniumbug : 사실, 그게 유일한 문제는 아닙니다. 수백만 개의 요소를 섞어서 백만 명의 소멸자를 호출하면 참고 지역이 너무 나빠지므로 정리 작업에 오래 걸릴 것입니다. – MSalters
@milleniumbug : 메모리에 저장된 모든 요소가 필요합니다. 저는 모든 데이터를로드 한 후 모든 업데이트에 대한 timeseries에 대한 다양한 통계를 계산하고 계산 한 다음이를 시각화에 추가하는 timeseries 데이터 작업을하고 있습니다. 일부 통계는 창 데이터를 기반으로하며 누적되므로 일부 계열을로드 할 수 없습니다. 또한 모든 것을 시각화하고 있습니다. 출력은 모든 점에 대한 시간 표시기에 관한 데이터가 들어있는 다른 벡터의 개체입니다. – bpeikes