제거 된 단위가 여전히 다른 장치에서 사용되는 경우 사용 절을 정리하면 차이가 있습니까?

StackOverflow https://stackoverflow.com/questions/763862

  •  11-09-2019
  •  | 
  •  

문제

개인적으로 나는 그것을 좋아한다면 uses 조항은 가능한 한 작지만 많은 응용 분야에서는 실제로 큰 단위 (실행 파일을 팽팽하게하는 것)와 같이 Forms 또는 VirtualTrees 어쨌든 적어도 다른 장치에서 필요합니다.

그래서 : 내가 청소하면 차이를 만듭니다. uses 결국 프로젝트에서 장치가 제거되지 않더라도 조항은? 그렇다면 : 어떤 식으로? 그리고 : 청소하고 있습니다 uses 조항 가능한 빨리 수행해야 할 일이거나 우연히 사용되지 않은 장치를 찾을 때까지 기다릴 수 있습니까?

도움이 되었습니까?

해결책

프로젝트의 다른 곳에서 사용되는 경우 읽기 쉬운 클리너 코드를 제작하는 것을 제외하고는 큰 차이가 없습니다. 그래도 영향을 줄 수있는 몇 가지 사소한 것들이 있습니다.

컴파일 순서 : 컴파일러는 어떤 장치를 사용하는지에 따라 단위를 컴파일 할 주문을 결정합니다. 초기 장치의 사용 절에서 장치를 제거하면 사용 된 장치가 컴파일 사이클에서 나중에 컴파일 될 수 있습니다. 이것은별로 들리지 않을 수도 있지만 명심해야합니다. 초기화 섹션은 장치가 컴파일 된 것과 동일한 순서로 실행됩니다. 그러나 이것은 실제로 프로젝트에 큰 차이를 만들어서는 안됩니다.

CodeInsight : 코드 완료 드롭 다운을 시작하면 현재 사용 가능한 모든 장치를 기반으로 선택을 제공합니다. 필터링해야 할 선택의 수를 줄일 수 있으며, 따라서 사용중인 장치 수를 줄임으로써 피 묻은 물건을 끌어내는 데 걸리는 시간을 줄일 수 있습니다. (아니, 난 쓴 맛이 아니야. 왜 물어봐?)

다른 팁

일반적으로 아니요. 프로젝트의 어느 곳에서나 단위를 한 번 사용하는 경우 얼마나 더 많이 사용되는지는 중요하지 않습니다. 반대로, 단위가 적어도 한 번 어딘가에 사용된다면 얼마나 많은 장소를 제거하는지는 중요하지 않습니다. 컴파일 된 프로그램은 동일하게 작동하며 크기가 거의 동일합니다.

유일한 차이점은 단위 초기화 및 최종화 섹션 순서입니다. 단위 사용 순서는 정확한 효과가 문서화 된 적이 없지만 해당 섹션이 실행되는 순서에 영향을 미칩니다 (따라서 초기화 순서에 의존하지 마십시오).

그러나 여전히 변수 목록과 매개 변수 목록을 정리하는 것이 좋습니다. 필요하지 않은 물건을 제거하면 읽고있는 내용이 코드가하는 일에 대한 정확한 그림을 제공한다는 것을 합리적으로 확신 할 수 있기 때문에 보관 한 코드를 쉽게 읽을 수 있습니다. 코드가 많은 단위를 언급하지만 실제로는 단위를 사용하지 않으면 다음에 귀하 또는 다른 사람이 코드를 볼 때 코드가 시설을 사용하는 위치를 찾으려고 시간을 보내려고합니다. 그 단위의. (당신은 스스로에게 말할 것입니다. "흠,이 코드에는 포함됩니다. Graphics, 그러나 나는 그것이 어디에서 그려지는지 볼 수 없습니다. 나는이 코드에 그런 책임이 있다고 생각하지 않았기 때문에 또 다른 모습을 더 잘할 것입니다. 이봐, 동료-하루 중 시간을 내어이 단원이 어디에서 얻는 지 말해 줄 수 있습니까? ")

예, 있습니다 하나의 트릭 그것은 종종 간과되고 뒤에서 당신을 물릴 수 있습니다.
일부가 있다면 초기화/마무리 코드, It 항상 실행됩니다 귀하의 장치에 달리 호출되는 코드가 없더라도 단위는 항상 포함됩니다 당신은 그렇지 않을 것이라고 생각하지만). 따라서 프로젝트에서 필요하지 않은 장치를 제거하면 눈에 띄는 차이가 생길 수 있습니다.

주목할만한 또 다른 것은 그 것입니다 단위의 순서는 컴파일러가 선택한 식별자를 결정합니다.s가있을 때 동종 2 개의 다른 단위에서는 단위 이름으로 접두사없이 호출합니다 (항상 모범 사례로해야합니다).

그 외에는 Mason과 Rob이 지적한 바와 같이, 단위 순서는 편집 된 순서와 초기화/최종화의 순서에 영향을 미칩니다.

코드 통찰력은 불필요한 단위를 제거하면 더 빠르며, 프로젝트에 사용 된 모든 장치가 검색 경로에 의존하여 다른 사람이 다른 사람을 통해 암시 적으로 추가 될 때 검색 경로에 의존하는 대신 DPR에 명시 적으로 추가되는 경우 전 세계적으로 더 빠릅니다. 단위.

나는 메이슨과 롭에 동의하지 않는다 : 그것은 차이를 만듭니다!

의존성 감소.

Mason과 Rob이 설명한대로 현재 프로젝트에 차이가 없습니다. 대신 차이는 다음 프로젝트에 있습니다. 불필요한 (서버) 장치를 (클라이언트) 장치에 보관하면 다른 프로젝트에서 해당 클라이언트 장치를 사용하면 종속성도 시작됩니다. 방금 뽑은 장치에 대한 다른 정당한 클라이언트 장치가 없다면 Bloat를 추가했습니다.

무료 파스칼 분석기를 사용하여 코드에서 미사용 장치를 찾으십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top