2016-07-15 5 views
0

스크립팅을 사용하는 Java 프로그램을 만들고 있습니다. 나는 각 스크립트 (실제로 "수학 스크립트"및 "계정 스크립트"와 같은 모든 유형의 스크립트)에 대해 하나의 파일로 스크립트를 분할해야하는지 또는 모든 스크립트에 하나의 클러스터 된 파일을 사용해야하는지 궁금합니다.하나 또는 여러 개의 스크립트 파일을 사용해야합니까?

this 질문 종류는 이미 실용적인 측면 (별도로 자주 수정되는 스크립트와 큰 스크립트)을 설명했기 때문에 가능하면 실용적인 관점보다는 많은 관점에서 대답을 찾고 있습니다.

+0

별도의 스크립트 – hjpotter92

+1

이 질문을 [programmers.se] (으)로 옮기기로했습니다. – hjpotter92

답변

0

기술 성능에 미치는 영향에 대해서는 단일 라이브러리를 여러 번 사용하지 않고 한 번만로드하므로 단일 전역 인스턴스를 사용하는 것이 실제로 더 효율적이라고 주장 할 수 있습니다. 그러나 여러 파일의 사용법에 대한 질문은 실제로 다릅니다. 여러개의 물리적 인 lua 파일은 같은 Globals를 사용하여로드되거나 Globals 인스턴스를 사용하여 하나의 파일을로드 할 수 있습니다. Globals 테이블은 여러 파일에서로드되었는지 여부에 관계없이 결국 동일한 양의 데이터를 포함합니다. 각 파일에 대해 여러 개의 전역 변수를 사용하는 경우에는 그렇지 않습니다.

이와 같은 질문은 실제로 루아를 사용하고자하는 목표에 달려 있습니다. 단일 전역 인스턴스를 사용하면 RAM을보다 효율적으로 사용할 수 있지만 성능 향상을 실제로 제공하지는 않습니다. 하나의 파일 대 여러 파일을로드하는 것은 파일 핸들을 열고 닫는 시간이 길어지기 때문에 약간 더 오래 걸릴 수 있습니다. 그러나 이것은 마이크로 코드와 같이 하나의 파일에 모든 코드를 작성해야하는 번거 로움이 없습니다. 어떻게 효율적으로 구성하는 것이 얼마나 어려운지는 말할 것도 없습니다.

여러 Globals를 사용하는 데는 몇 가지 장점이 있지만 각 Globals 인스턴스에는 자체 전역 저장소가 있으므로 개체를 메타 테이블 또는 오버라이드 함수에 오버로드하는 것과 같은 다른 작업을 수행하면 다른 인스턴스로 넘어 가지 않습니다. 이것이 당신에게 문제가되지 않는다면, 제 제안은 코드를 여러 파일에 작성하고 단일 전역 인스턴스로 모두로드하는 것입니다. 그러나이 작업을 수행하여 모든 파일을 올바르게 구조화하는 경우 전역 범위를 많이 사용하면 개체 이름을 추적하는 것이 어려워지고 실수로 다른 파일의 값을 동일하게 지정하여 수정하는 경향이 있습니다. 이를 피하기 위해 각 파일은 자신의 테이블에있는 모든 기능을 정의 할 수 있으며 이러한 테이블은 개별 파일로 작동하며 테이블을 기반으로 기능을 선택할 수 있습니다. 특정 파일에서 선택하는 것과 거의 같습니다.

결국에는 차이가별로 없지만 어떤 것을 선택 하느냐에 따라 코드의 올바른 구성을 보장해야 할 수도 있습니다.

다중 전역을 사용하면 더 많은 RAM이 필요하지만 다른 파일에 영향을주지 않으면 서 각 파일에 고유 한 사용자 지정 라이브러리가있을 수 있지만 모든 파일을 체계적으로 유지하기 위해 소프트웨어의 Java 끝에서 더 많은 구조적 관리가 필요합니다.

하나의 Globals를 사용하면 RAM 사용량은 적지 만 모든 파일은 동일한 전역 범위를 공유하므로 라이브러리의 사용자 지정 버전이 더 어려워지고 이름과 기타 기능이 충돌하지 않도록 소프트웨어의 Lua 끝에서보다 체계적인 구성이 필요합니다.

다른 사용자가 예를 들어 애드온 시스템을 통해 소프트웨어에 애드온을 사용하여 Lua API를 사용하려는 경우, 사용자가 애드온을 작성해야하는 이유 때문에 전역 인스턴스가 여러 개 필요할 수 있습니다. 코드가 다른 애드온과 충돌하지 않도록 보장하는 것은 위험 할뿐만 아니라 존재할 필요가없는 부담입니다. 경험이없는 사용자는 애드온 만들기를 시도하면서 제대로 구성하지 않으며 소프트웨어 또는 소프트웨어 애드온의 일부를 엉망으로 만들 수 있습니다.

관련 문제