PDA

View Full Version : Debug یا Trace کردن برنامه در دلفی 7



nasr
دوشنبه 04 شهریور 1387, 08:43 صبح
سلام
من برنامه ای دارم که تعداد زیادی فرم داره

هنگام ساخته شدن یکی از فرم ها خیلی طول میکشه تا ساخته بشه.

حالا میخوام ببینم چطور میشه بفهمم که برای ساختن چه قسمتی از این فرم یا انجام چه عملی اینقدر زمان میبره

ممنونم

Mahyaa
دوشنبه 04 شهریور 1387, 09:08 صبح
اگر در Oncreate فرم، کد نوشتید یک BreakPoint همونجا باید بگذارید.

nasr
دوشنبه 04 شهریور 1387, 09:22 صبح
اگر در Oncreate فرم، کد نوشتید یک BreakPoint همونجا باید بگذارید.
نه هیچ چیزی ننوشتم

Mahyaa
دوشنبه 04 شهریور 1387, 09:30 صبح
من بعید میدونم ساختن چیزی در این فرم باشه که زمان میبره.
در برنامتون ، از پایگاه داده استفاده میکنید ؟یا بهتر بگم دیتاستی را در ابتدای ساختن یا نمایش فرم باز نمیکنید ؟ ممکنه خاصیت Active رو به صورت پیشفرض روی True گذاشته باشید. اگر از کامپوننت خاصی هم استفاده میکنید، اسم ببرید، شاید بد نباشه.

nasr
دوشنبه 04 شهریور 1387, 10:17 صبح
کامپوننهایی که استفاده شده دقیقا در فرمهای دیگه هم هست

vcldeveloper
دوشنبه 04 شهریور 1387, 10:29 صبح
با استفاده از یک Profiler مثل AutomatedQA AQTime می تونید روند اجرای برنامه را بصورت یک ساختار درختی مشاهده کنید و تعداد دفعات اجرا شدن هر کد و زمان سپری شده در آن کد را بدست بیارید. اینطوری متوجه میشید که کدام بخش از کد موجب کند شدن اجرای برنامه شده.

nasr
دوشنبه 04 شهریور 1387, 11:31 صبح
از کجا میشه گیر آورد؟
ممنون

vcldeveloper
دوشنبه 04 شهریور 1387, 12:56 عصر
از کجا میشه گیر آورد؟از سایت های کرک. شاید هم بتونید پروفایلر مجانی در اینترنت پیدا کنید.

nasr
دوشنبه 04 شهریور 1387, 13:48 عصر
آقا من دنلودش کردم ولی این فکر نکنم به درد کار من بخوره
من میخوام بدونم دلیل طول کشیدن ساختن یک فرم چیه؟

ممنون

SYNDROME
دوشنبه 04 شهریور 1387, 18:06 عصر
دوست عزیز آیا در هیچ کدوم از رویدادهای فرمتان چیزی ننوشته اید؟
آیا در فرم فوق اطلاعات از بانک را می خوانید؟(ممکن است حجم بانک زیاد باشد)
موفق باشید

vcldeveloper
سه شنبه 05 شهریور 1387, 00:08 صبح
من میخوام بدونم دلیل طول کشیدن ساختن یک فرم چیه؟
وقتی ساختش طول میکشه، یعنی در طول ساختش کدی بیشتر از حد انتظار زمان میبره، پس باید اون کد را پیدا کنید.
احتمالا کار با یک Profiler را بلد نیستید؛ برنامه را در یک Profiler باز کنید و کاری که موجب باز کردن اون فرم میشه را انجام بدید، بعد برنامه را ببندید، Profiler بهتون میگه چه توابعی اجرا شدن و هر کدوم چقدر زمان بردند. یک Profiler خوب حتی مسیر اجرای توابع را هم مشخص میکنه، یعنی میگه فلان تابع که زمان زیادی را به خودش اختصاص داده، توسط چه کدی و چطوری اجرا شده. وقتی این تابع پیدا شد، شما متوجه میشید که کجا باید دنبال مشکل کاهش سرعت بگردید.