확인, 그래서 우리는 여기에 실제 코너의 경우를 가지고 :
- 500x100,000 = 50,000,000 요소를. 데이터 유형에 따라이 은 ca. 색인으로 희소성 및 주소를 무시하면 메모리 내 표현의 50M-400M. 대칭 인 대칭 행렬은이 값을 25-200M로 줄입니다.
- 0이 아닌 밀도가 11 % 인 것은 에 대한 9 개의 요소의 오버 헤드가 심지어 데이터 유형이 작은 경우에도 설득력이 없음을 의미합니다. 64 비트 데이터 유형에 대한 옵션. 이에서 근무
는 2 계층 솔루션에 강력한 인수를 제공합니다
- A (공유) "데이터 저장소 서버"
- 과 ((MySQL은 하나 개 언급 한 옵션 당신에게 인) 어쩌면 PHP) 프론트 엔드.
PHP를 500x500 행렬 곱셈에 사용하면 매우 효율적인 방법이 아닌 것처럼 보입니다. PHP에서 루프 오버 헤드가 매우 높기 때문에 루프 내부에서 약간의 작업 만 수행하면 약간의 공연.
나는 약간 다른 솔루션을 이동하는 것이 좋습니다 : (아마도 C 또는 C#에서) 자신의 백엔드를 쓰기 시작에
- 는
- 수신 대기 (로컬) 소켓에 메모리에 행렬을 읽 명령, 예.
- 행렬 및 소정의 데이터에 해당 명령을 실행하고 그 결과를
복귀하고 PHP 통해 피드 "곱". 이렇게하면 프론트 엔드를위한 PHP의 단순성과 웹 중심성을 가지면서 핵심 기능을위한 컴파일 된 언어의 처리 속도를 얻을 수 있습니다.
매트릭스가 얼마나 희박합니까? 이것은 MySQL 스토리지를 평가하는 데 중요합니다. –
항목의 약 11 %가 0이 아닌 값을가집니다. –