2017-01-25 1 views
1

데이터베이스에 저장하기 전에 다른 데이터와 함께 사용자 비밀번호를 해싱해야하는 NodeJS 서버를 스크립팅하고 있습니다. 수학적으로 강렬한 보안 해시 생성 프로세스와 많은 양의 해싱을 수행해야하므로 C에서 해시 프로세스를 코딩하도록 선택했습니다.NodeJS : 네이티브 애드온 대 외부 바이너리의 성능

질문 : 얼마나 많은 오버 헤드를 추가합니까? NodeJS에 대한 네이티브 addon을 생성하는 것과는 대조적으로 child_process.exec를 통해 C로 코딩 된 해시 프로세스를 실행하면됩니까?

I.E. 데이터가 해쉬 될 필요가있을 때마다 데이터 조각을 인수로 child_process.exec를 호출해야합니다.

+0

https://stackoverflow.com/questions/28267794/advantages-of-node-js-addon-vs-child-process – AllTheTime

+0

네이티브 애드온을 만드는 것이 더 많은 성과를 거둘 수 있음을 이해합니다. 동일한 성능이 수행되고 있다고 가정 할 때 자원 오버 헤드/처리 시간과 관련하여 native_addon과 child_process.exec의 성능이 더 좋습니다. – nicktendo

답변

1

기존 노드 프로세스에서 코드를 실행하는 것보다 하위 프로세스를 생성하는 데 상당한 오버 헤드가 있습니다. 두 프로세스는 stdio를 통해 연결되고 통신되어야합니다. 세부 사항을 원하면 사용 사례에 맞게 직접 테스트해야합니다. 테스트하는 한 가지 방법은 네이티브 해싱 라이브러리를 찾아 C 프로세스와 비교하여 테스트하는 것입니다.

이렇게 말하면 초당 수백 명의 사용자를 등록하지 않으면 자식 프로세스를 사용하는 경우의 성능 오버 헤드가 완전히 무시할 수 있습니다. 노드에서 해싱을 수행 할 수도 있으며 차이점을 알지 못할 수도 있습니다.

사실, 이미 네이티브 모듈이므로 node에 포함 된 'crypto'모듈 만 사용해야합니다.

https://stackoverflow.com/a/17201493/3355076에는 간단한 예제가 있습니다.