نقل قول: ابزار تست کارایی سیستم
نقل قول:
حالا ابزاری به این شکل موجوده یا باید داخل برنامه خودم لاگ بگیرم؟
این دو ابزار همونطور که خودتون هم گفتید، برای تست کلی سیستم خوبه.
اما برای بررسی عملکرد هر متد، من چیزی پیدا نکردم به این صورت که بتونه از بیرون عملکرد متدها رو بررسی کنه. یا مثلا کد رو به صورتی تغییر بده که این اطلاعات رو حین اجرا استخراج کنه.
هر چند مورد دوم امکان پذیر به نظر میاد ولی ابزار آماده ای برای اینکار پیدا نکردم.
هر چند میشه برای هر متد تایم ها رو در حد نانوثانیه در نظر گرفت، اما دستکاری همه متدها در صورتی که پروژتون بزرگ باشه، کار سختیه.
به هر حال نقاط مشکوک رو شناسایی کن، یک کلاس جمع آوری اطلاعات درست کن و زمان ها رو اندازه گیری کن و در نهایت تعداد دفعات call شدنشون و مدت زمان اجراشون رو خواهی داشت.
راستی نمیتون annotation ای تعریف کنی که اینکار رو ساده تر بتونی انجام بدی؟ مثلا کنار هر متد بنویسی (زیاد خودم کار نکردم، نمیدونم پیچیدگی تعریف چنین annotation ای به چه صورته)
نقل قول: ابزار تست کارایی سیستم
سلام. بسیار عالی. ممنون
آره. منم اکثر چیزایی که دیدم به سبک همینی که شما گفتین بوده. یعنی میان با استفاده از تایم بررسی میکنن و زمان CPU رو گزارش میده. پیشنهاد خوبیه. اون کلاسایی که فکر میکنم گلوگاه پروسه هست نسبتا کمه... یعنی پروژه فعلا اونقدر بزرگ نیست.
اما در مورد annotation فکر میکنم کار پیچیده میشه. چون به خودی خود کاری نمیکنه. صرفا یه جور markup هستش. بعد باز باید بیام خودم دستی توی کد با reflection این متدا رو اسکن کنم و کارای دیگه... میشه. اما بنظر راحتتر نمیشه!
ولی یه نکته ای دیدم تو junit که میشه به متد تست timeout داد.
https://github.com/junit-team/junit4...eout-for-tests
کار مسخره ای هست بنظرم :لبخند: ولی خب میشه یه زمان میانه در نظر بگیرم و متدای مورد نظر رو تست کنم ببینم کدوم متدا بیشتر به تایم اوت میخوره... ولی خب چیز بهتری بنظرم نمیرسه
بازم ممنون
نقل قول: ابزار تست کارایی سیستم
به کارت نمیاد. ممکنه یک متد زمان کمی رو صرف کنه و به timeout کوتاه حتی نرسه. اما تعداد دفعات فراخوانی اون متد زیاد باشه.
برای همین، همونطور که در پست قبل گفتم تعداد call شدن و زمانشون مهمه. اگر تعداد فراخوانی ها زیاد باشه، به نظرم بهتره به جای ذخیره کردن اطلاعات هر فراخوانی، اطلاعات زیر به ازای هر متد در یک لیست تهیه کنی:
["نام پکیج.نام کلاس.نام متد" | تعداد دفعات اجرا | کمترین زمان اجرا | متوسط زمان اجرا | بیشترین زمان اجرا]