다음은 더 많은 질문이 있습니다. "자바 엔진이 알려진 엔진 (알려진 엔진 기준)에서 이러한 고려 사항에 어떤 영향이 미칩니 까?"알 수없는 Javascript 엔진에 대한 코드를 고려할 때 실행 속도와 메모리 보존에 가장 큰 영향을 미치는 요소는 무엇입니까?
Node.js를 같은 것을 만드는 사람 Strongloop 같은 사람들은, 또한 util.inherits 대신하는 내부 함수와 같은 코드를 쓰기 때문에 나는 "커뮤니티"를 요청해야 느끼는 이유는 : 그들은 속성 정의를 작성 TheConstructorFunction.prototype.constructor = TheConstructorFunction
을 이는 자체 4 개 개의 속성이 설정되어있다 : 이것은 나에게 비효율적 인 것 같지만
ctor.prototype = Object.create(superCtor.prototype, {
constructor: {
value: ctor,
enumerable: false,
writable: true,
configurable: true
}
});
후, 나는 단지 같은 코드의 저자 반대로 삼년 더 나은 자바 스크립트를 쓰기 위해 노력했습니다. 이것이 왜 또는 효율적이지 않은지에 대한 설명이 있습니까?
하나의 대답은 util.inherits는 하위 클래스 작업이 거의 없으므로 비효율적이지 않습니다. 그러나 일부 라이브러리가 결과 관찰을 테스트하기 위해 빌드와 빌드 사이에 발생하는 수백, 수천 개의 하위 클래스 작업을 처리한다고 가정 할 때 Node.js가 내부적으로 util.inherits를 사용하는 경우 이는 소비자의 개발 시간에 영향을 미칩니다. 나는이 수준에서 효율성이 중요하다고 생각하고 util.inherits가 내부적으로 사용되지 않기를 바란다. 나는 util.inherits의 목적을 이해하지 못한다. 왜 그걸 가지고 있죠? 나는 그것이 비효율적 인 합성을 촉진한다고 생각합니다. require('util').inherits(C1,C2);
은 거의 동의어이며 C1.prototype=Object.create(C2.prototype); C1.prototype.constructor=C1;
보다 느릴 수 있습니다. 더 큰 라이브러리가 Node.js의 효율성에 의존 할 것이기 때문에이 전문가들이 그 기능을 내부적으로 사용한다면 걱정이된다. .constructor
을 열거하지 않는 것에 관해서는 ... "열거 가능성"문제는 드물고 소비자에게 맡겨야한다고 생각하지만, 내부 작업이 util.inherits에 의존하는 경우 이것이 실제로 남아 있지 않습니다. 소비자에게.
당신이'ctor.prototype'에 준 예제는 그것을 비교 한'prototype.constructor'와 다릅니다. 오렌지 사과입니다. – TylerY86
"* 일부 라이브러리는 결과 관찰을 테스트하기 위해 빌드간에 발생하는 수백 및 수천 개의 하위 클래스 작업을 처리합니다."- 오 진짜? 왜 그렇게 생각하니? 아니,이 규모조차도별로 중요하지 않습니다. 디스크에서 소스 파일을 읽는 것. "거의 동의어이며 느린 것 같습니다."- 실제로는 아닙니다. 그 점이 궁금하신 분은 직접 벤치마킹하십시오. 아니요, 표준 라이브러리 함수는 비효율을 촉진하지 않으며, 단순화 *를 촉진하여 개발자가 마이크로 최적화보다 훨씬 많은 시간을 절약 할 수 있습니다. – Bergi
@Bergi, 당신 말이 맞을지 모르지만 나는 당신의 도전을 받아들입니다. 가까운 미래에 어느 시점에서 벤치마킹 할 것입니다.왜냐하면, 당신이 옳다면, 나는 단지 그것에 대해 생각하는 데 더 많은 시간을 낭비하고 있습니다. 그러나 당신이 틀린 경우에, 당신 및 bloggers/educators/전문가의 전체 회전은 상당히 심각한 개념을 퍼지고있다. PHP windparm 관리 SaaS를 작성했으며 요청 유형에 따라 거의 20-50 가지 클래스를 사용합니다. Node.js에서 시스템을 구현할 것을 고려하고 있지만 기본 시스템은 Wordpress와 비슷한 엔진으로 계획하고 있습니다. .. 한 가지 예가 있습니다. – flcoder