Delphi 용 프로파일 러 및 메모리 분석 도구
최근에 Delphi 4에서 Delphi 2009로 업그레이드했습니다. Delphi 4 에서는 Primoz Gabrijelcic의 GpProfile을 프로파일 러로 사용하고 Turbo Power의 Memory Sleuth 를 메모리 분석 및 누수 디버깅에 사용했습니다. 둘 다 나를 위해 잘 작동했습니다. 하지만 이제 Delphi 2009에서 작동하는 새로운 도구가 필요합니다.
Delphi 용 프로파일 링 / 분석 도구의 선두 업체는 분명히 AutomatedQA의 AQTime 입니다. 그들은 최근 에 Atanas Soyanov의 Memproof를 먹어 치웠는데 , 그것은 내가 훌륭하고 무료 메모리 분석 도구라는 것을 이해하고 그 기능을 AQTime에 통합했습니다. 그러나 AQTime은 개별 프로그래머에게 매우 비쌉니다. 실제로 Delphi 2009 로의 업그레이드 비용보다 더 많은 비용이 듭니다!
그래서 내 질문은 : 당신이 만족하고 추천하는 현재 버전의 Delphi에서 프로파일 링 및 메모리 분석을 수행하는 다른 저렴한 옵션이 있습니까? 아니면 총알을 깨물고 AQTime에 대해 큰 돈을 지불해야합니까?
부록 : 초기 답변자들은 이미 Delphi에 포함 된 FastMM 관리자가 메모리 누수를 찾는 데 매우 유용하다는 것을 나타내는 것으로 보입니다.
그렇다면 소스 코드 프로파일 링을위한 좋은 대안이 있습니까?
제가 궁금한 것은 Michael Adolph의 ProDelphi로 AQTime 비용의 1/6 미만입니다. 당신은 그것을 사용합니까? AQTime은 6 배를 지불 할 가치가 있습니까?
부록 2 : AQTime과 ProDelphi의 평가판을 다운로드했습니다.
AQTime은 처음에는 약간 압도적이고 약간 혼란 스러웠습니다. 연결하는 데 필요한 몇 가지 트릭을 찾는 데 몇 시간이 걸렸습니다.
ProDelphi는 제가 익숙했던 GpProfile과 매우 흡사했습니다. 그러나 그 창은 어수선하고 혼란스럽고 GpProfile만큼 좋지 않습니다.
나에게 큰 차이점은 다음과 같습니다.
ProDelphi는 코드를 변경합니다. AQTime은 그렇지 않습니다. 코드를 변경하면 문제가 발생하면 데이터가 손상 될 수 있지만 GpProfile에 대한 제 경험으로는 그런 일이 발생하지 않았습니다. AQTime을위한 플러스 하나.
ProDelphi에서는 최적화 기능을 해제해야합니다. 그러나 프로파일 링하려는 것은 최적화가 설정된 프로그램이 실행되는 방식입니다. AQTime을위한 플러스 하나.
ProDelphi는 기능 또는 절차로만 프로파일 링 할 수 있습니다. AQTime은 개별 라인으로 내려갈 수 있습니다. AQTime의 경우 2를 더합니다.
ProDelphi에는 20 개의 루틴을 프로파일 링하는 무료 버전이 있으며 프로 버전의 가격은 미화 100 달러 미만입니다. AQTime은 미화 600 달러입니다. ProDelphi 용 Plus 4.
점수는 이제 4-4입니다. 어떻게 생각해?
부록 3 : Primoz Gabrijelcic은 GpProfile을 다시 작동시킬 계획입니다. 아래 응답 중 일부에 대한 그의 의견을 참조하십시오. 그는 StackOverflow에 Gabr으로 있습니다.
부록 4 : 결국 프로파일 러 솔루션이있는 것 같습니다. 아래에 설명 된 Andre의 오픈 소스 asmprofiler를 참조하십시오 .
가격면에서 FastMM4를 메모리 추적기로 이길 수는 없습니다. 사용이 간편하면서도 강력하며 Delphi와 잘 통합됩니다.
다운로드, 설치 또는 변경없이이 줄만 입력하면
ReportMemoryLeaksOnShutDown := True;
코드의 어느 곳에서나 메모리 누수에 대한 기본보고를 사용할 수 있습니다.
충돌 정보와 같은 더 많은 정보가 필요한 경우 EurekaLog는 우리가 사용하는 매우 좋은 제품입니다. MadExcept는 또한 좋은 평판을 가지고 있습니다 ...
구체적으로 프로파일 링을 위해 AQTime이 있습니다.
gpProfile의 경우 업데이트를 위해 gabr 을 시도하고 버그를 해결할 수 있습니다 ... 또는 오픈 소스이므로 gpProfile을 직접 업데이트하십시오 . ;-)
Delphi 용 오픈 소스 프로파일 러를 만들었습니다. http://code.google.com/p/asmprofiler/
완벽하지는 않지만 무료이며 오픈 소스입니다. :-).
내가 만든 주된 이유는 정확한 콜 트리를 놓 쳤기 때문입니다. 예를 들어, ProDelphi는 모든 호출의 요약 및 총 수만 저장하고 특정 시간 (또는 기간)에 특정 프로 시저를 호출 한 내용을 볼 수 없습니다. 그리고 시간 차트가있어서 통화 시간이 시간에 따라 어떻게 변했는지 볼 수 있습니다.
Eric Grange의 샘플링 프로파일 러도 살펴보십시오.
프로파일 링을위한 AQtime에 매우 만족합니다.
GpProfile과 AQTime을 모두 사용하여 병목 현상을 일으키는 메서드 호출을 찾는 데 둘 다 효과적이라는 것을 알았습니다.
그러나 AQTime은 내 소스 코드를 변경하지 않고도 어떤 코드 라인이이 문제를 일으키는 지 알려줄 수 있습니다 (TD32 디버깅 및 디버그 dcus에서 가장 잘 작동하지만).
나는 최근에 그것을 사용하여 루틴 속도를 약 30 배 향상 시켰습니다 (내부 라이브러리 기능을 잘못 사용했기 때문).
그러나 나는 그것을 스스로 지불 할 필요가 없었다!
우리는 AQTime Pro를 사용하며 만족합니다. Smartbear는 최근에 완전 무료 AQTime 표준 에디션을 출시했습니다 . 대부분의 기능은 여전히 있지만 물론 약간 제거되었습니다.
나는 ProDelphi의 인터페이스에 대해 동의하지만 우리가 계속해서 기뻐할만큼 충분히 훌륭합니다. 심각한 성능 문제가있을 때 매우 가끔 프로파일 링 만하면되며 항상 문제를 매우 빠르게 찾는 데 도움이됩니다. 비용 대비 매우 좋은 가치이며 Michael은 새 버전을 위해 업데이트하는 데 꽤 좋은 것 같습니다.
내가 제안하고 싶은 것은 코드를 삽입해야하기 때문에 어떤 종류의 VCS에 모든 관련 코드를 포함하는 것이 매우 중요하다는 것입니다. 프로파일 링이 필요한 경우 다음을 수행합니다.
- 모든 관련 파일 확인
- 모두 확인
- 필요한 프로파일 링을 수행 한 다음
- 모든 체크 아웃을 취소하고 우리가 있던 곳으로 효과적으로 롤백합니다.
Delphi Area에서 Profiler 구성 요소를 사용해 본 사람이 있습니까? 소스가 포함 된 프리웨어이며 다음과 같이 작성되었습니다.
If you are looking for an easy and accurate way to measure execution time of your code for free, TProfiler is what you need. TProfiler is a non-visual and debugging component that enables you to create named timers in your code.
Each timer of TProfiler provides the following information:
The number of times that the timer was activated (Hit Count) The total execution time The average execution time on each hit Execution time on the first hit Execution time on the last hit The hit with minimum execution time The hit with maximum execution time
It's true, for profiling I miss Primoz' GpProfile, and haven't found a good replacement. I once tried AQTime, but wasn't too happy with it for the price.
For tracking of memory leaks and dodgy memory accesses however I couldn't be happier than I am with FastMM4.
I've been using ProDelphi for a long time & find it meets my needs.
I've been able to achieve stunning results in system performance improvements by using the data it provides.
For small projects the free version is fine.
For larger projects, you'll need the (Paid) pro version.
For a profiler you might try SmartInspect from Gurock Software. I never used GpProfile, but quickly glancing at its feature set reminded me of SmartInspect. Interestingly it doesn't claim to be a profiler, but it seems to be as much of one as GpProfile (unless I am missing something). It supports Delphi 2009 and has a free Trial and is a little cheaper then AQTime.
Note: SmartInspect is a logger rather than a profiler.
The FastMM4 memory manager mentioned in this older answer ("How to monitor or visualize memory fragmentation of a delphi application") keeps a list of all allocations which can be queried at run time (and displayed in a grid using the included demo application). It does not exactly show which object leaks, as the statistics are per block size. But it can be useful for long-time monitoring of applications in production, for example servers or services. I am currently integrating it in a (commercial) web application server framework as the 'VisualMM' add-on.
ReferenceURL : https://stackoverflow.com/questions/291631/profiler-and-memory-analysis-tools-for-delphi
'program story' 카테고리의 다른 글
Web API의 모든 응답에 사용자 지정 헤더 추가 (0) | 2021.01.11 |
---|---|
목록 초기화 방법 (0) | 2021.01.11 |
Powershell에서 사용자 이름 / 암호로 네트워크 폴더에 연결 (0) | 2021.01.11 |
일부 와일드 카드와 일치하는 MySQL 데이터베이스를 삭제 하시겠습니까? (0) | 2021.01.11 |
바이트 버퍼는 부호가있는 또는 부호없는 문자 버퍼 여야합니까? (0) | 2021.01.11 |