স্ট্যাক স্যাম্পলিংয়ের বাইরে: সি ++ প্রোফাইলার


146

একটি হ্যাকার টেল

তারিখটি 12/02/10। বড়দিনের আগের দিনগুলি দূরে সরে যাচ্ছিল এবং আমি উইন্ডোজ প্রোগ্রামার হিসাবে বেশ বড় একটি রোড ব্লকে আঘাত করেছি। আমি একিউটাইম ব্যবহার করছি, আমি নিদ্রাহীন, চকচকে এবং খুব ঘুমের চেষ্টা করেছি, এবং আমরা যেমন কথা বলি ভিটিউন ইনস্টল করছে। আমি ভিএস ২০০৮ প্রোফাইলার ব্যবহার করার চেষ্টা করেছি এবং এটি ইতিবাচক শাস্তি দেওয়ার পাশাপাশি প্রায়শই সংবেদনশীলও হয় না। আমি এলোমেলো বিরতি কৌশল ব্যবহার করেছি। আমি কল-ট্রি পরীক্ষা করেছি। আমি ফাংশন ট্রেস নিষ্ক্রিয় করেছি। তবে বিষয়টির দুঃখজনক বেদনাদায়ক সত্যটি হ'ল আমি যে অ্যাপ্লিকেশনটির সাথে কাজ করছি সেটি মিলিয়ন লাইন কোডেরও বেশি, সম্ভবত তৃতীয় পক্ষের আরও একটি মিলিয়ন লাইনের মূল্যবান।

আমার আরও ভাল সরঞ্জাম দরকার আমি অন্যান্য বিষয়গুলি পড়েছি। আমি প্রতিটি বিষয়ে তালিকাভুক্ত প্রতিটি প্রোফাইলার চেষ্টা করে দেখেছি। এই জঞ্জাল এবং ব্যয়বহুল বিকল্পগুলির চেয়ে সহজ কিছু হতে পারে, বা প্রায় কোনও লাভের জন্য হাস্যকর পরিমাণে কাজ করা উচিত। বিষয়গুলিকে আরও জটিল করার জন্য, আমাদের কোডগুলি ভারীভাবে থ্রেড করা হয়েছে এবং বেশিরভাগ কিউটি ইভেন্ট ইভেন্ট লুপগুলি চালায়, যার মধ্যে কিছু এতটাই নাজুক যে তারা সময়সীমা বিলম্বের কারণে ভারী উপকরণের মধ্যে ক্র্যাশ হয়ে যায়। আমরা কেন একাধিক ইভেন্ট লুপ চালাচ্ছি আমাকে জিজ্ঞাসা করবেন না। কেউ আমাকে বলতে পারে না।

উইন্ডোজ এনভায়রনমেন্টে ভালগ্রাইন্ডের লাইন ধরে আরও কি বিকল্প আছে?
আমি ইতিমধ্যে চেষ্টা করেছি ভাঙ্গা সরঞ্জাম দীর্ঘ সোয়াথ এর চেয়ে ভাল কিছু আছে?
কিউটির সাথে সংহত করার জন্য কি এমন কিছু নকশা করা হয়েছে, সম্ভবত সারিবদ্ধ ইভেন্টগুলির দরকারী প্রদর্শন সহ?

আমি যে সরঞ্জামগুলির চেষ্টা করেছি তার একটি সম্পূর্ণ তালিকা এবং তাত্পর্যগুলিতে সত্যই কার্যকর ছিল:

  • একিউটাইম: বরং ভাল! গভীর পুনরাবৃত্তি নিয়ে কিছুটা সমস্যা রয়েছে তবে কল গ্রাফ এই ক্ষেত্রে সঠিক এবং আপনার যে কোনও বিভ্রান্তি থাকতে পারে তা পরিষ্কার করতে ব্যবহার করা যেতে পারে। একটি নিখুঁত সরঞ্জাম নয়, তবে চেষ্টা করার মতো। এটি আপনার প্রয়োজন অনুসারে হতে পারে এবং বেশিরভাগ সময় এটি অবশ্যই আমার পক্ষে যথেষ্ট ছিল।
  • ডিবাগ মোডে এলোমেলো বিরতি আক্রমণ: সময়ের যথেষ্ট পরিমাণে তথ্য নয়।
    একটি ভাল সরঞ্জাম তবে একটি সম্পূর্ণ সমাধান নয়।
  • সমান্তরাল স্টুডিওগুলি: পারমাণবিক বিকল্প। বাধা, অদ্ভুত এবং ক্রেজি শক্তিশালী। আমি মনে করি আপনার 30 দিনের মূল্যায়ন করতে হবে এবং এটি খুব উপযুক্ত কিনা তা খুঁজে বের করুন। এটাও খুব শীতল।
  • এএমডি কোডানালিস্ট: বিস্ময়কর, সহজেই ব্যবহারযোগ্য, খুব ক্রাশ-প্রবণ, তবে আমি মনে করি এটি একটি পরিবেশগত বিষয়। আমি এটি চেষ্টা করার পরামর্শ দিই, এটি নিখরচায়।
  • লুক স্ট্যাকওয়াকার: ছোট প্রকল্পগুলিতে খুব ভাল কাজ করে, এটি আমাদের উপর কাজ করার জন্য এটি চেষ্টা করার জন্য কিছুটা চেষ্টা করা হচ্ছে। কিছু ভাল ফলাফল যদিও, এবং এটি অবশ্যই আমার ব্যক্তিগত কাজের জন্য স্লিপিকে প্রতিস্থাপন করে।
  • পিউরিফ্লাস: উইন-এক্স 64 পরিবেশের পক্ষে কোনও সমর্থন নেই, সর্বাধিক সুস্পষ্টভাবে উইন্ডোজ 7. অন্যথায় দুর্দান্ত excellent অন্যান্য বিভাগের আমার বেশ কয়েকজন সহকর্মী এর শপথ করে।
  • ভিএস ২০০৮ প্রোফাইলার: প্রয়োজনীয় রেজোলিউশনে ফাংশন ট্রেস মোডে 100 + জিগস পরিসরে আউটপুট উত্পাদন করে। প্লাস দিকে, কঠিন ফলাফল উত্পাদন করে।
  • জিপিআরফ: জিসিসিকে এমনকি পরিমিতভাবে কার্যকর হতে হবে।
  • ভিটিউন: ভিটিউনের ডাব্লু 7 অপরাধীর উপর সীমানা সমর্থন করে। অন্যথায় দুর্দান্ত
  • পিন: আমার নিজের সরঞ্জামটি হ্যাক করতে হবে, সুতরাং এটি একটি সর্বশেষ সমাধানের ধরণ।
  • নিদ্রাহীন \ খুব ঘুমন্ত: ছোট অ্যাপ্লিকেশনগুলির জন্য দরকারী, তবে এখানে আমাকে ব্যর্থ করছেন।
  • ইজিপ্রোফিলার: কোথায় ইনস্টল করতে হবে তা নির্দেশ করার জন্য আপনাকে ম্যানুয়ালি ইনজেকশন কোডের কিছুটা আপত্তি না থাকলে খারাপ নয়।
  • ভালগ্রাইন্ড: * নিক্স কেবল তবে আপনি যখন সেই পরিবেশে থাকেন তখন খুব ভাল।
  • অপ্রোফাইল: কেবল লিনাক্স।
  • প্রফিট: তারা বন্য ঘোড়া গুলি।

প্রস্তাবিত সরঞ্জামগুলি যা আমি চেষ্টা করি নি:

  • Xperf:
  • Glowcode:
  • Devpartner:

নোটস: এই মুহুর্তে ইন্টেল পরিবেশ। VS2008, লাইব্রেরি বুস্ট। Qt 4+। এবং তাদের সকলের নিকৃষ্ট হামিনজার: ট্রলটেকের মাধ্যমে কিউটি / এমএফসি সংহত।


এখন: প্রায় দুই সপ্তাহ পরে, দেখে মনে হচ্ছে আমার সমস্যাটি সমাধান হয়েছে। তালিকার প্রায় সমস্ত কিছু এবং আমার ব্যক্তিগত কৌশলগুলি সহ বিভিন্ন সরঞ্জামের জন্য ধন্যবাদ, আমরা প্রাথমিক বাধা পেয়েছি। যাইহোক, আমি পরীক্ষার, অন্বেষণ এবং নতুন প্রোফাইলার পাশাপাশি নতুন প্রযুক্তি চেষ্টা করে যাচ্ছি। কেন? কারণ আমি এটি আপনার কাছে guysণী, আপনি ছেলেরা কারণ। এটি টাইমলাইনটি কিছুটা কমিয়ে দেয় তবে আমি নতুন সরঞ্জামগুলি চেষ্টা করে চালিয়ে যেতে এখনও খুব আগ্রহী।

সংক্ষিপ্তসার
অন্যান্য অনেক সমস্যার মধ্যে, বেশ কয়েকটি উপাদান সম্প্রতি ভুল থ্রেডিং মডেলটিতে স্যুইচ করা হয়েছিল, আমাদের নীচের কোডটি হঠাৎ করে আর মাল্টিথ্রেড না হওয়ার কারণে মারাত্মক হ্যাং-আপ ঘটায়। আমি আরও বলতে পারি না কারণ এটি আমার এনডিএ লঙ্ঘন করে তবে আমি আপনাকে বলতে পারি যে এটি নৈমিত্তিক পরিদর্শন বা এমনকি সাধারণ কোড পর্যালোচনা দ্বারা কখনও পাওয়া যায়নি। প্রোফাইলার, কলগ্রাফ এবং একত্রে এলোমেলোভাবে বিরতি ছাড়াই আমরা এখনও আকাশের সুন্দর নীল সিন্দুতে আমাদের ক্রোধকে চিৎকার করব। ধন্যবাদ, আমি দেখা হয়েছি এমন সেরা হ্যাকারদের কয়েকজনের সাথে আমি কাজ করি এবং দুর্দান্ত সরঞ্জাম এবং মহান ব্যক্তিদের দ্বারা পরিপূর্ণ একটি আশ্চর্যজনক 'শ্লোকটিতে আমার অ্যাক্সেস রয়েছে।

ভদ্রলোক, আমি এটির গভীরভাবে প্রশংসা করি, এবং কেবলমাত্র আফসোস করছি যে আপনার প্রতিদানকে পুরস্কৃত করার মতো যথেষ্ট প্রতিবেদন আমার নেই। আমি এখনও মনে করি যে এসওতে আমরা এ পর্যন্ত পেয়েছি তার থেকে ভাল উত্তর পাওয়ার জন্য এটি একটি গুরুত্বপূর্ণ প্রশ্ন is

ফলস্বরূপ, পরের তিন সপ্তাহের জন্য প্রতি সপ্তাহে, আমি আমার সাধ্যের মধ্যে সবচেয়ে বড় অনুগ্রহটি রেখে যাচ্ছি এবং উত্তরের কাছে যে সরঞ্জামটি আমার কাছে সাধারণ জ্ঞান নয় তা উত্তর দিয়ে এটি প্রদান করব। তিন সপ্তাহ পরে, আমরা আশা করি প্রোফাইলগুলির একটি নির্দিষ্ট প্রোফাইল সংগ্রহ করেছি, যদি আপনি আমার শাস্তি ক্ষমা করেন।

টেক-অ্যাওয়ে
প্রোফাইলার ব্যবহার করুন। তারা রিচি, কার্নিগান, বেন্টলে এবং নথের পক্ষে যথেষ্ট ভাল। আপনি কে ভাবেন সেদিকে আমার কোন খেয়াল নেই। একটি প্রোফাইলার ব্যবহার করুন। আপনি যা পেয়েছেন সেটি যদি কাজ না করে তবে অন্য একটি সন্ধান করুন। আপনি যদি একটি খুঁজে না পান তবে একটি কোড। আপনি যদি একটি কোড করতে না পারেন, বা এটি একটি ছোট হ্যাং আপ, বা আপনি কেবল আটকে আছেন, এলোমেলোভাবে বিরতি ব্যবহার করুন। অন্য সমস্ত কিছু যদি ব্যর্থ হয় তবে একজন প্রোফাইলার বাজানোর জন্য কিছু গ্রেডের ছাত্র নিয়োগ করুন।


একটি দীর্ঘ ভিউ
সুতরাং, আমি ভেবেছিলাম এটি কিছুটা পূর্ববর্তী দিক থেকে লিখলে ভাল লাগবে। আমি সমান্তরাল স্টুডিওগুলির সাথে বিস্তৃতভাবে কাজ করার বিকল্প বেছে নিয়েছিলাম, কারণ এটি পিন সরঞ্জামের উপরে নির্মিত। জড়িত কিছু গবেষকের সাথে একাডেমিক লেনদেন করার পরে, আমি অনুভব করেছি যে এটি সম্ভবত কিছু মানের একটি চিহ্ন। ধন্যবাদ, আমি ঠিক ছিল। জিইউআই কিছুটা ভয়ঙ্কর হলেও আমি আইপিএসটিকে অবিশ্বাস্যরূপে কার্যকর বলে মনে করেছি, যদিও আমি স্বাচ্ছন্দ্যে সবার জন্য এটি সুপারিশ করতে পারি না। সমালোচনামূলকভাবে, লাইন-লেভেল হিট গণনা পাওয়ার কোনও সুস্পষ্ট উপায় নেই, এটিইকিউটি এবং অন্যান্য বেশ কয়েকটি প্রোফাইলার সরবরাহ করে এবং আমি অন্যান্য বিষয়গুলির মধ্যে শাখা-নির্বাচনের হার পরীক্ষা করার জন্য খুব দরকারী বলে খুঁজে পেয়েছি। নেট হিসাবে, আমি পাশাপাশি একিউটাইম ব্যবহার করে উপভোগ করেছি এবং আমি তাদের সমর্থনটি সত্যই প্রতিক্রিয়াশীল বলে খুঁজে পেয়েছি। আবার, আমাকে আমার প্রস্তাবটি যোগ্য করতে হবে: তাদের বৈশিষ্ট্যগুলির অনেকগুলি এটি ভালভাবে কাজ করে না এবং তাদের মধ্যে কয়েকটি উইন 7 এক্স 64-তে সরাসরি ক্র্যাশ-প্রবণ। এক্সফিউর প্রশংসনীয়ভাবে সঞ্চালনও করেছেন, তবে নির্দিষ্ট ধরণের অ্যাপ্লিকেশনগুলিতে ভাল পাঠ পেতে প্রয়োজনীয় নমুনা বিশদের জন্য তীব্রভাবে ধীরে ধীরে।

এই মুহুর্তে, আমাকে বলতে হবে যে আমি মনে করি না যে ডাব্লু xx64৪ পরিবেশে সি ++ কোডের প্রোফাইল দেওয়ার জন্য একটি নির্দিষ্ট বিকল্প নেই, তবে অবশ্যই এমন বিকল্প রয়েছে যা কেবল কোনও কার্যকর পরিষেবা সম্পাদনে ব্যর্থ হয়।


18
আপনি কি অন্যরকম চাকরি পাওয়ার চেষ্টা করেছেন? :)
নিকোলাই ফেটিসসোভ

10
এই শক্তভাবে ধাঁধা সমাধান করতে আমি আর কোথায় পাব? আমার ধারণা আমি আবার কার্নেল হ্যাকিংয়ে ফিরে যেতে পারব, তবে এটিরও তেমন মূল্য পরিশোধ করা হবে না।
জেক কুর্জার

3
@ কোস, আমি জিপিআরএফ-কে কোনও ব্যবহারের জন্য ভাবি যে-জিপিসি টুলসেট ব্যবহার করতে হবে -pg এর সাথে সংকলিত অন্যথায় এটি gprof.out ফাইল তৈরি করে না। ওপি-র ক্ষেত্রে এটি মনে হয় যে তিনি এমএসভিসি ব্যবহার করছেন যা জিপিআরএফ ব্যবহার করে না। তারপরে আবার আমি ভাবি না যে তালিকার অন্যরা যদি তার প্রয়োজনগুলি ব্যর্থ করে তবে
জিআরফফ

2
@ মার্ক গ্র্যাভেল এটি যথেষ্ট ন্যায্য, আমি মনে করি .... এটি আমার কাছে একটি বিচিত্র বোধগম্য বলে মনে হচ্ছে, যে সর্বাধিক রক্ষণাবেক্ষণ করা পোস্টগুলি হ'ল আকস্মিকভাবে সম্প্রদায়ের ডোমেনে প্রবেশ করে, কার্যকরভাবে এমন একটি পরিস্থিতি তৈরি করে যেখানে আরও বেশি আপনি আপডেট করেন এবং আপনার প্রশ্ন বা উত্তর বজায় রাখেন , সম্প্রদায়ের চোখে সেই রক্ষণাবেক্ষণ থেকে যত কম বেরোন। আমি কি এটি মেটাতে নেওয়া উচিত?
জেক কুর্জার

2
আমি এখন প্রোফাইলারদের সম্পর্কে যা জানি, তা কি কেউ পূর্বসূরী চায়?
জেক কুর্জার

উত্তর:


65

প্রথম:

টাইম স্যাম্পলিং প্রোফাইলাররা সিপিইউ স্যাম্পলিং প্রোফাইলারের চেয়ে বেশি মজবুত। আমি উইন্ডোজ বিকাশের সরঞ্জামগুলির সাথে অত্যন্ত পরিচিত নই তাই কোনটি কোন তা বলতে পারি না। বেশিরভাগ প্রোফাইলার হলেন সিপিইউ নমুনা।

একটি সিপিইউ স্যাম্পলিং প্রোফাইলার প্রতিটি এন নির্দেশাবলী একটি স্ট্যাক ট্রেস ধরেন।
এই কৌশলটি আপনার কোডের কিছু অংশ প্রকাশ করবে যা সিপিইউ আবদ্ধ। এটি যদি আপনার অ্যাপ্লিকেশনটির বোতল ঘাড় হয় তবে দুর্দান্ত। যদি আপনার অ্যাপ্লিকেশন থ্রেডগুলি বেশিরভাগ সময় একটি মিউেক্সের সাথে লড়াই করে ব্যয় করে তবে তা দুর্দান্ত নয়।

একটি সময় নমুনা দেওয়ার প্রোফাইলার প্রতিটি এন মাইক্রোসেকেন্ডগুলিতে স্ট্যাক ট্রেস ধরে।
এই কৌশলটি "ধীর" কোডে শূন্য হবে । কারণটি সিপিইউ বাউন্ডড, আইও বাউন্ড, মিটেক্স বাউন্ড বা কোডের ক্যাশে থ্র্যাশিং বিভাগগুলিকে অবরুদ্ধ করে। সংক্ষেপে আপনি যে কোনও কোডের টুকরো আপনার অ্যাপ্লিকেশনটি ধীর করে দিচ্ছেন তা দাঁড়াবে।

তাই কোনও সময় স্যাম্পলিং প্রোফাইলার ব্যবহার করুন যদি যথাসম্ভব সম্ভব হয় বিশেষত থ্রেড কোড প্রফেলিং করার সময়।

দ্বিতীয়ত:

স্যাম্পলিং প্রোফাইলাররা ডেটা গব উত্পন্ন করে। ডেটা অত্যন্ত কার্যকর, তবে অনেক সময় সহজেই দরকারী হতে পারে useful একটি প্রোফাইল ডেটা ভিজ্যুয়ালাইজার এখানে প্রচুর সাহায্য করে। প্রোফাইল ডেটা ভিজ্যুয়ালাইজেশনের জন্য আমি যে সেরা সরঞ্জামটি খুঁজে পেয়েছি তা হ'ল জিপ্রোফ 2 ডট । নামটি আপনাকে বোকা বানাতে দেবে না, এটি সমস্ত ধরণের স্যাম্পলিং প্রোফাইলার আউটপুট পরিচালনা করে (একিউটাইম, স্লিপী, এক্সফ্রেস, ইত্যাদি)। একবার ভিজ্যুয়ালাইজেশন আপত্তিজনক ফাংশন (গুলি) নির্দেশ করেছে, আসল কারণটি সম্পর্কে আরও ভাল ইঙ্গিত পেতে কাঁচা প্রোফাইল ডেটাতে ফিরে যান।

Gprof2dot সরঞ্জাম একটি ডট গ্রাফের বিবরণ উত্পন্ন করে যা আপনি তার পরে কোনও গ্রাভিভিজ সরঞ্জামে খাওয়ান । আউটপুটটি মূলত অ্যাপ্লিকেশনের প্রভাব দ্বারা কোড ফাংশন সহ একটি কলগ্রাফ হয়। বিকল্প পাঠ

সুন্দর আউটপুট উত্পন্ন করতে gprof2dot পেতে কয়েকটি ইঙ্গিত।

  • আমি --skewআমার গ্রাফগুলিতে 0.001 এর একটি ব্যবহার করি যাতে আমি সহজেই হট কোডের পাথগুলি দেখতে পারি। অন্যথায় int main()গ্রাফের প্রাধান্য রয়েছে।
  • আপনি যদি সি ++ টেম্পলেটগুলির সাথে ক্রেজি কিছু করছেন তবে আপনি সম্ভবত যুক্ত করতে চান --strip। এটি বুস্টের সাথে বিশেষভাবে সত্য।
  • আমি আমার নমুনা ডেটা উত্পন্ন করতে OProfile ব্যবহার করি। ভাল আউটপুট পেতে আমার তৃতীয় পক্ষ এবং সিস্টেম লাইব্রেরি থেকে ডিবাগ প্রতীকগুলি লোড করার জন্য এটি কনফিগার করতে হবে। একই কাজটি নিশ্চিত করে নিন, অন্যথায় আপনি দেখতে পাবেন যে সত্যিকার অর্থে যা চলছে তখন সিআরটি আপনার আবেদনের 20% সময় নিচ্ছে এবং হ্রাস পাচ্ছে mallocএবং 15% খেয়ে ফেলবে।

যদিও আমি জানি না যে এটি আমার সমস্যার পুরো উত্তর, gprof2dot আমার বিশাল অস্ত্রাগারে প্রবেশ করেছে এবং দ্রুত একটি প্রিয় জায়গা ধরে নিচ্ছে। আমি মনে করি যে এটি একটি অনুগ্রহ মূল্য!
জেক কুর্জার

2
আমি এই প্রশ্নটি লিনাক্স সময় নমুনা ভিত্তিক প্রোফাইলার জিজ্ঞাসা করেছি । অপ্রোফিলের অবশেষে সময় ভিত্তিক স্যাম্পলিংয়ের কথা। তারা খুব উচ্চমানের আউটপুট উত্পাদন করে, তাই একবার তারা এই বৈশিষ্ট্যটি যুক্ত করলে আমি সেগুলি ব্যবহার করব। তার বাইরেও আমার এক বন্ধু হ্যাক করে একসাথে একটি জিডিবি + ব্যাকট্রেস দ্রষ্টব্য রচনা করার জন্য ছিল। খুব হ্যাকি, তবে এটি বাধা খুঁজে পেয়েছে।
ডিফ্ট_কোড

@ ডিফ্ট_কোড: "প্রোফাইলিংয়ের জন্য একটি জিডিবি + ব্যাকট্রেস সমাধান একসাথে হ্যাক করুন Very খুব হ্যাকি, তবে এটির মধ্যে বাধা খুঁজে পেয়েছে" " আপনি আমার ধ্রুবক অভিমানের নিশ্চয়তা দিচ্ছেন :) কিছু লোকেরা প্রোফাইলিংটি সুন্দর হতে চায় তবে যদি ফলাফলগুলি আপনার প্রয়োজন মতো হয় তবে কী কাজ করে তা নিয়ে যান, যা সুন্দর তা নয়
মাইক ডুনলাভে

আমি মাইক ডুনলাভেয়ের সাথে একমত এক্সফ্রেস / ডাব্লুপিএর মতো বিষয়গুলি দেখতে খুব সুন্দর এবং শক্তিশালী দেখায় তবে কীভাবে এই সরঞ্জামগুলি ব্যবহার করতে হয় তা নির্ধারণ করতে কিছুটা সময় লাগে এবং দিনের শেষে এলোমেলোভাবে বিরতি দেওয়া এত সহজ এবং সমস্যাটি সমাধান করার জন্য আরও ভাল তথ্য সরবরাহ করে। অটোমেটেড সমাধানগুলি প্রায়শই মনে হয় যে বাধাটি সমাধানের জন্য প্রয়োজনীয় সমালোচনামূলক তথ্যগুলি ফিল্টার না করে।
জেডিম্যাটটিও

16

আপনি এলোমেলোভাবে বিরতি দেওয়ার চেষ্টা করলে কী ঘটেছিল? আমি এটি একটি দৈত্য অ্যাপ্লিকেশনটিতে সর্বদা ব্যবহার করি। আপনি বলেছিলেন যে এটি পর্যাপ্ত তথ্য দেয়নি, এবং আপনি প্রস্তাব দিয়েছেন যে আপনার উচ্চ রেজোলিউশন প্রয়োজন। কখনও কখনও এটি কীভাবে ব্যবহার করা যায় তা বোঝার জন্য লোকদের কিছুটা সহায়তা প্রয়োজন।

ভিএস এর অধীনে আমি যা করি, তা স্ট্যাক প্রদর্শনটি কনফিগার করে যাতে এটি আমাকে ফাংশন যুক্তি প্রদর্শন করে না, কারণ এটি স্ট্যাক প্রদর্শনটিকে পুরোপুরি অপঠনযোগ্য, আইএমও করে তোলে।

তারপরে আমি প্রায় 10 টি নমুনা নিয়েছিলাম "বিরতি" মারার সময় এটি আমাকে অপেক্ষা করিয়ে তোলে । রেফারেন্সের জন্য আমি নোটপ্যাডে অনুলিপি করতে ^ এ, ^ সি এবং ^ ভি ব্যবহার করি। তারপরে আমি প্রত্যেকটি অধ্যয়ন করি, সেই সময়টি সম্পাদন করার চেষ্টা করার প্রক্রিয়াটি কী ছিল তা নির্ধারণের জন্য।

যদি এটি 2 বা ততোধিক নমুনায় কিছু অর্জন করার চেষ্টা করা হয় এবং সেই জিনিসটি কঠোরভাবে প্রয়োজনীয় না হয় তবে আমি একটি লাইভ সমস্যা পেয়েছি এবং আমি জানি যে এটি ঠিক করা কতটা সংরক্ষণ করবে।

এমন কিছু জিনিস রয়েছে যা আপনার সত্যিকারের জানা দরকার নেই যেমন সুনির্দিষ্ট পার্সেন্ট গুরুত্বপূর্ণ নয় এবং তৃতীয় পক্ষের কোডের অভ্যন্তরে যা ঘটে তা গুরুত্বপূর্ণ নয়, কারণ আপনি সেগুলি সম্পর্কে কিছুই করতে পারবেন না । আপনি যা সম্পর্কে কিছু করতে পারেন তা হ'ল কোডের কল-পয়েন্টগুলির সমৃদ্ধ সেট আপনি প্রতিটি স্ট্যাকের নমুনায় প্রদর্শিত সংশোধন করতে পারেন । এটাই আপনার খুশির শিকারের জায়গা।

আমি যে ধরণের জিনিস খুঁজে পাই তার উদাহরণ:

  • প্রারম্ভকালীন সময়ে, এটি ডিএলএল সংস্থান থেকে আন্তর্জাতিকীকরণযুক্ত চরিত্রের স্ট্রিংগুলি বের করার চেষ্টা করার সময় প্রায় 30 স্তর গভীর হতে পারে। যদি সত্যিকারের স্ট্রিংগুলি পরীক্ষা করা হয়, এটি সহজেই সক্রিয় হয়ে উঠতে পারে যে স্ট্রিংগুলি সত্যিকার অর্থে আন্তর্জাতিককরণের প্রয়োজন নেই , যেমন তারা ব্যবহার করা স্ট্রিংগুলি ব্যবহারকারী কখনই দেখেনি।

  • সাধারণ ব্যবহারের সময়, কিছু কোড নির্দোষভাবে কিছু অবজেক্টে একটি পরিবর্তিত সম্পত্তি সেট করে। এই অবজেক্টটি একটি সুপার-ক্লাস থেকে এসেছে যা পরিবর্তনটি ক্যাপচার করে এবং বিজ্ঞপ্তিগুলির সূচনা করে যা পুরো ডেটা স্ট্রাকচার জুড়েই ছড়িয়ে পড়ে, ইউআই কে হেরফের করে তোলে এবং অন্বেষণের পক্ষে কঠিন উপায়গুলিতে অবজেক্ট তৈরি এবং নির্মূল করে। এটি অনেক কিছু ঘটতে পারে - বিজ্ঞপ্তিগুলির অপ্রত্যাশিত পরিণতি।

  • একের পর এক সারিতে একটি কার্যপত্রক পূরণ করা cell দেখা যাচ্ছে যদি আপনি একবারে সারিটি তৈরি করেন, মানগুলির একটি অ্যারে থেকে, এটি অনেক দ্রুত।

পিএস আপনি যদি বহু-থ্রেডেড হন, যখন আপনি এটিকে বিরতি দেন, সমস্ত থ্রেড বিরতি দেয়। প্রতিটি থ্রেডের কল স্ট্যাক একবার দেখুন। সম্ভাবনা রয়েছে, তাদের মধ্যে কেবলমাত্র একজন আসল অপরাধী, এবং অন্যরা অলস হয়ে পড়েছে।


2
মন্তব্য? মন্তব্য? এটা পারস্য! আমি ... দুঃখিত, কোথা থেকে এসেছে তা জানেন না। না, কোডটি ক্লিঙ্গন অপেরাকে পঠনযোগ্য দেখতে দেয় এবং এটি প্রায় নথিভুক্ত। আসলে, আমি মনে করি এটি খুব কম নথিভুক্ত .... ওহ .শ্বর।
জেক কুর্জার

3
কিউটিএমএফসি একীকরণ? ওহ দুর্দান্ত, আপনি জটিল এবং খারাপ হয়ে গেছেন এবং আপনি এখনও অ্যাপ্লিকেশন-নির্দিষ্ট কোডটিতে পৌঁছান নি।
বেন ভয়েগট

5
কিউটি / MFC? এর ফলে 3 টি মাথা নিয়ে মিউট্যান্ট বাচ্চাদের জন্ম দেওয়া উচিত নয় যে তারা কখনই বোকা ধারণা শোনার প্রতিটি ধারণা কল করে? ত্রুটিযুক্ত ... আমি খনন করি ... আপনি যদি কোনও এমএফসি সকেট ক্লাস ব্যবহার করেন তবে অবিলম্বে আপনার সকেট কোড এবং তারপরে প্রোফাইলটি আবার লিখুন। সিএসকেট কোডে প্রচুর জায়গা রয়েছে যা ওয়েটফোরসিংলঅবজেক্টের বার্তা লুপ সংস্করণ ব্যবহার করে যা আমি সম্পাদনা খুঁজে পেয়েছি। আমার জীবনের জন্য আমি
ওয়েট ফ্যানকের

2
ওহে ,শ্বর, আমাকে বিশ্বাস করুন, এটি ঠিক ততটাই চতুর যা আপনি ভাবেন।
জেক কুজার

3
@ জ্যাক: খুব আরাম নয়, তবে এটি টুরিং সর্বজনীনতার গৌরব। যে কোনও ভাষা, যতই উঁচু বা নিম্ন স্তরের, এটির অপব্যবহারের সীমাহীন দক্ষতার সমতুল্য।
মাইক ডুনলাভে

8

আমি এএমডি কোডএনালিস্টের সাথে কিছুটা সাফল্য পেয়েছি


ইন্টেল পরিবেশ, এই মুহূর্তে। আমি এটা মনে রাখব যদিও! :)
জেক কুজার

4
@ জ্যাক: আমি নিশ্চিত না যে আপনি সেখানে কী বোঝাতে চেয়েছেন। এএমডি কোডএনালিস্টের এএমডি চিপসের প্রয়োজন নেই, এটি ইন্টেল চিপস সহ বেশিরভাগ x86 বা x64 (ওরফে x86-64 / IA-64 / AMD64) চিপগুলিতে কাজ করা উচিত।
অ্যাডাম রোজেনফিল্ড

1
স্পষ্টতই, আমি নিরক্ষর! দারুণ খবর। আমি আগামীকাল এটি ব্যবহার করে প্রশ্নটি আপডেট করব।
জেক কুর্জার

এখনও অবধি, আমার প্রয়োজনীয় রেজোলিউশনে নমুনা দেওয়ার সময় এটি খুব অস্থির।
জেক কুর্জার

@ অ্যাডাম: আমি সম্প্রতি একটি ইন্টেল পেন্টিয়াম চতুর্থ মেশিনে কোড বিশ্লেষককে চেষ্টা করেছি এবং এটি কেবল সময় ভিত্তিক নমুনা সরবরাহ করেছিল, যার সাথে থ্রেড ব্যবহার সম্পর্কিত কোনও তথ্য নেই, না থ্রেড সম্পর্কিত তথ্য যা ছিল ... আমার যে পরিমাণ তথ্য পেয়েছিল তা আসলেই মধ্যম ছিল ... অতিরিক্তভাবে এটি ভিজ্যুয়াল স্টুডিওর কিউটি একীকরণে ক্র্যাশ ঘটায় .. আমি সন্তুষ্ট
নই

7

আপনার কি একটি এমএফসি অনআইডল ফাংশন আছে? অতীতে আমার কাছে একটি কাছের রিয়েল-টাইম অ্যাপ্লিকেশনটি ছিল যা আমি ঠিক করতে হয়েছিল যে 19.2K গতিতে সেট করার সময় সিরিয়াল প্যাকেটগুলি নামানো হয়েছিল যা একটি পেন্টিয়ামের সাথে রাখা উচিত ছিল। অনআইডল ফাংশনটি হ'ল জিনিসগুলি হত্যার জন্য। আমি নিশ্চিত নই কিউটি-র এই ধারণাটি আছে কিনা তবে আমি এটিও পরীক্ষা করে দেখব।


2
আমাদের আসলে একটি অনআইডল রয়েছে এবং আমাদের কিউটিএমএফসি ইন্টিগ্রেশনকে ধন্যবাদ, এটি QT ev..e ... প্রাক্কালে ... ইভেন্ট লুপের মধ্য দিয়ে প্রবাহিত হচ্ছে। ওহ!
জেক কুজার

দেখা যাচ্ছে যে এটি সরাসরি আমাদের সমাধানের দিকে নিয়ে যায়, সুতরাং এটি প্রশ্নের সঠিক উত্তর না হলেও, আমি মনে করি যে প্রশ্নটি উত্তরযোগ্য নয়।
জেক কুর্জার 21

4

পুনরায় ভিএস প্রোফাইলার - যদি এটি এত বড় ফাইল তৈরি করে, সম্ভবত আপনার নমুনা ব্যবধানটি খুব ঘন ঘন হয়? এটি হ্রাস করার চেষ্টা করুন, সম্ভবত আপনার যেভাবে যথেষ্ট পরিমাণে নমুনা রয়েছে।

এবং আদর্শভাবে, নিশ্চিত হয়ে নিন যে আপনি সমস্যার ক্ষেত্রটি ব্যবহার না করে অবধি নমুনা সংগ্রহ করছেন না। সুতরাং সংগ্রহ বিরতি দিয়ে শুরু করুন, আপনার প্রোগ্রামটির "ধীর ক্রিয়াকলাপ" করার জন্য পান, তারপরে সংগ্রহ শুরু করুন। আপনার সংগ্রহের সর্বাধিক 20 সেকেন্ডের দরকার। এর পরে সংগ্রহ বন্ধ করুন।

এটি আপনার নমুনা ফাইলের আকার হ্রাস করতে সহায়তা করবে এবং আপনার বিশ্লেষণের জন্য প্রয়োজনীয় যা কেবল তা ক্যাপচার করবে।


আমি কাল এই শট দেব।
জেক কুজার

4

আমি উইন্ডোজটির জন্য পিউরিফ্লাস সফলভাবে ব্যবহার করেছি । যদিও এটি সস্তা নয়, আইবিএম একটি পরীক্ষামূলক সংস্করণ সরবরাহ করে যা কিছুটা পঙ্গু। সব আপনার সাথে প্রোফাইলিং জন্য প্রয়োজন পরিমাণ নির্ণয় পিডিবি ফাইল এবং সঙ্গে / স্থায়ী লিঙ্ক আছেন: কোন। কেবল ত্রুটি: Win7 / 64 এর জন্য কোনও সমর্থন নেই।


দুর্ভাগ্যক্রমে, আমাদের প্রাথমিক লক্ষ্য Win7 7 আমি তথ্যটি মূল পোস্টে যুক্ত করব।
জেক কুজার

1
পিউরিফ্লাসের বর্তমান সংস্করণটি Win7 / 64 সমর্থন করে।
hmuelner

3

ইজাইপ্রোফিলার - আমি এখানে এটি এখনও উল্লেখ করে দেখিনি তাই নিশ্চিত হয়ে নেই যে আপনি ইতিমধ্যে এটি দেখেছেন কিনা। এটি কীভাবে মেট্রিক ডেটা সংগ্রহ করে তাতে কিছুটা আলাদা পদ্ধতি লাগে। এর সংকলন-সময় প্রোফাইল পদ্ধতির ব্যবহারের ক্ষেত্রে একটি অপূর্ণতা হ'ল আপনাকে কোড-বেসে পরিবর্তন করতে হবে। সুতরাং ধীর কোথায় হতে পারে সে সম্পর্কে আপনার কিছু ধারণা থাকতে হবে এবং সেখানে প্রোফাইলিং কোড .োকাতে হবে।

যদিও আপনার সর্বশেষ মন্তব্যগুলি দেখে মনে হচ্ছে আপনি কমপক্ষে কিছুটা এগিয়ে চলেছেন। সম্ভবত এই সরঞ্জামটি আপনার জন্য কিছু দরকারী মেট্রিক সরবরাহ করতে পারে। অন্য কিছু না হলে এর কিছু সত্যিকারের পুরডি চার্ট এবং ছবি রয়েছে: পি


3

আরও দুটি সরঞ্জাম পরামর্শ।

লুক স্ট্যাকওয়াকারটির একটি সুন্দর নাম রয়েছে (এটি আমার স্বাদের জন্য কিছুটা চেষ্টা করেও), এটির জন্য আপনার কোনও ব্যয় হবে না এবং আপনি উত্স কোডটি পাবেন। এটি বহু থ্রেডেড প্রোগ্রামগুলিকে সমর্থন করারও দাবি করে। সুতরাং এটি অবশ্যই একটি স্পিন মূল্য।

http://lukestackwalker.sourceforge.net/

এছাড়াও গ্লোকোড, যা আমি ব্যবহারের পক্ষে যথাযথ হিসাবে উল্লেখ করেছি:

http://www.glowcode.com/

দুর্ভাগ্যক্রমে আমি কিছুক্ষণের জন্য কোনও পিসির কাজ করিনি, সুতরাং আমি এর একটিরও চেষ্টা করিনি। আমি আশা করি পরামর্শগুলি যেভাবেই হোক সাহায্য করবে।


3

এক্সআউট চেকআউট

এটি এমএস দ্বারা প্রদত্ত বিনামূল্যে, অ আক্রমণাত্মক এবং এক্সটেনসিবল প্রোফাইলার। এটি মাইক্রোসফ্ট উইন্ডোজ প্রোফাইলে তৈরি করেছে।


3

আপনি যদি ইভেন্ট লুপ সম্পর্কে সন্দেহজনক হন তবে কিউকোর অ্যাপ্লিকেশন :: ওভাররাইডিং :: বিজ্ঞপ্তি () এবং ডসোম ম্যানুয়াল প্রোফাইলিং (প্রেরকদের এক / দুটি মানচিত্র / সময় গণনা) করতে পারে?

আমি ভাবছি আপনি প্রথমে ইভেন্টের ধরণের ফ্রিকোয়েন্সি লগ করেন, তারপরে সেই ইভেন্টগুলি আরও সাবধানতার সাথে পরীক্ষা করুন (কোন বস্তু এটি প্রেরণ করে, এতে কী রয়েছে ইত্যাদি)। থ্রেড জুড়ে সিগন্যালগুলি সুস্পষ্টভাবে সারিযুক্ত হয়, সুতরাং এগুলি ইভেন্ট লুপে শেষ হয় (স্পষ্টতই স্পষ্টভাবে সারি সংযুক্ত সংযোগগুলি)।

আমরা আমাদের ইভেন্ট হ্যান্ডলারগুলিতে ফাঁদ পেতে এবং ব্যতিক্রমগুলি রিপোর্ট করার জন্য এটি করেছি, তাই সত্যই, প্রতিটি ইভেন্ট সেখানেই ঘটে।

শুধু একটি ধারণা।


এটি একটি সুন্দর ধারণা! আমি পাই-জিটিকে দিয়ে এখানে বেশিরভাগ কাজ করেছি, আমি কিউটি পরিবেশে অভ্যস্ত নই। ধন্যবাদ!
জেক কুজার

আপনার দেওয়া প্রদত্ত সিগন্যালের প্রকৃতি সমাধান এবং সমাধান করার কোনও প্রস্তাবিত উপায় আছে?
জেক কুর্জার

আমি এটি কেবল কিউস্টেটম্যাচিন :: সিগন্যাল ইভেন্টের সাথে সংকেতগুলির জন্য করেছি, যা একই রকম বলে মনে হয় না। উত্সটি এখনও QObject* objectপ্যারামিটার হওয়া উচিত । সম্ভবত মেটাকল সমস্ত সিগন্যালের টাইপ (সম্ভবত মনে হয়) তবে আমি নিশ্চিত নই। এটি আমার অভিজ্ঞতার থেকে কিছুটা অতিক্রম করে, তবে কিউটি উত্সে উঁকি দেওয়া কিছু সত্যকে উদ্রেক করতে পারে। (বা, এখানে আরও নির্দেশিত প্রশ্ন আর্ট কাতারে সংকেত অনুরোধ জিজ্ঞাসা করুন .. :)
ম্যাক

2

সম্পাদনা: আমি এখন দেখছি আপনি এটি আপনার প্রথম পোস্টে উল্লেখ করেছেন। দাম্মিত, আমি কখনই ভাবিনি যে আমি সেই লোক হব।

আপনি সূক্ষ্ম গ্রানুলারিটির সাথে আপনার কোডটি ইন্সট্রুমেন্ট করতে পিন ব্যবহার করতে পারেন । আমি মনে করি পিন আপনাকে একটি ফাংশনটি প্রবেশ করার সময় বা ভিটুন বা কোডএনালিস্টের মতো মোটামুটি কিছু অনুকরণ করে সেখানে কত ঘড়ির কাটায় কাটায় তা গণনা করার জন্য একটি সরঞ্জাম তৈরি করতে দেয়। তারপরে আপনার সময় সম্পর্কিত সমস্যাগুলি না চলে যাওয়া অবধি কোন ফাংশনগুলি চালিত হয়ে যায় তা সরিয়ে ফেলতে পারেন।


আসলে, পিনটিই আমি প্রথমে পৌঁছেছিলাম। পিন প্লে নামে কিছু আছে যা নিখুঁত হবে তবে এটি ইন্টেলের বাইরে প্রকাশের জন্য নয়। আমি নিশ্চিত না যে আমি পিন ব্যবহার করে খুব ভাল কিছু
বড

2

আমি প্রতিদিন যা ব্যবহার করি তা বলতে পারি।

ক) এএমডি কোড বিশ্লেষক

  • এটি সহজ, এবং এটি আপনাকে কী ঘটছে তার একটি দ্রুত পর্যালোচনা দেবে give এটি বেশিরভাগ সময় ঠিক থাকবে।
  • এএমডি সিপিইউগুলির সাহায্যে এটি আপনাকে সিপিইউ পাইপলাইন সম্পর্কে তথ্য জানাবে, তবে আপনার কেবল গ্রাফিক ইঞ্জিন, ভিডিও কোডেক ইত্যাদির মতো ভারী লুপ থাকলে কেবল এটি প্রয়োজন need

খ) ভিটিউন।

  • এটি vs2008 এ খুব ভালভাবে সংহত হয়েছে

  • হটস্পটগুলি জানার পরে, আপনাকে কেবল সময়ই নয়, ক্যাশে মিস করা এবং মেমরির ব্যবহারের মতো অন্যান্য জিনিসও নমুনা তৈরি করতে হবে। এটি খুব গুরুত্বপূর্ণ । একটি নমুনা সেশন সেট আপ করুন, এবং বৈশিষ্ট্যগুলি সম্পাদনা করুন। আমি সর্বদা সময়ের জন্য নমুনা করি, মেমরি পড়ি / লিখি এবং ক্যাশে মিস হয় (তিনটি আলাদা রান)

তবে সরঞ্জামের চেয়ে আরও বেশি, আপনাকে প্রোফাইলিংয়ের সাথে অভিজ্ঞতা অর্জন করতে হবে। এবং এর অর্থ সিপিইউ / মেমরি / পিসিআই কীভাবে কাজ করে তা বোঝা ... সুতরাং, এটি আমার 3 য় বিকল্প

গ) ইউনিট পরীক্ষা

এটি খুব গুরুত্বপূর্ণ যদি আপনি একটি বিশাল অ্যাপ্লিকেশন বিকাশ করেন যা বিশাল পারফরম্যান্সের প্রয়োজন হয়। আপনি যদি অ্যাপটিকে কয়েকটি টুকরো টুকরো টুকরো করে ভাগ করতে না পারেন তবে সিপিইউ ব্যবহার ট্র্যাক করা কঠিন হবে difficult আমি সমস্ত কেস এবং ক্লাস পরীক্ষা করি না, তবে আমি গুরুত্বপূর্ণ বৈশিষ্ট্যযুক্ত হার্ডকডযুক্ত ফাঁসি এবং ইনপুট ফাইলগুলি রেখেছি।

আমার পরামর্শটি বেশ কয়েকটি ছোট পরীক্ষায় এলোমেলো নমুনা ব্যবহার করছে এবং একটি প্রোফাইল কৌশলকে মানিক করার চেষ্টা করবে।


এএমডি কোড অ্যানালিস্ট আমার ডেভ পরিবেশে অস্থির এবং ভিটিউন এটির সমর্থন করে না it : এস
জ্যাক কুজার

2

আমি আমার সমস্ত প্রোফাইলিং প্রয়োজনীয়তার জন্য xperf / ETW ব্যবহার করি। এটিতে খাড়া শেখার বক্ররেখা রয়েছে তবে এটি অবিশ্বাস্যভাবে শক্তিশালী। আপনি যদি উইন্ডোজে প্রোফাইলিং করে থাকেন তবে আপনাকে অবশ্যই এক্সপারফ জানতে হবে। আমি আমার প্রোফাইল এবং অন্যান্য লোকের কোডে কর্মক্ষমতা সমস্যাগুলি খুঁজে পেতে এই প্রোফাইলারটি প্রায়শই ব্যবহার করি।

কনফিগারেশনটিতে আমি এটি ব্যবহার করি:

  • xperf প্রতিটি কোর থেকে সিপিইউ নমুনাগুলি গ্রহণ করে যা প্রতিটি এমএসে কোড চালায়। স্যাম্পলিংয়ের হারটি 8 কেএইচজেডে বাড়ানো যেতে পারে এবং নমুনাগুলিতে ব্যবহারকারী-মোড এবং কার্নেল কোড অন্তর্ভুক্ত থাকে। এটি কোনও থ্রেড চলমান অবস্থায় কী করছে তা সন্ধান করার অনুমতি দেয়
  • এক্সপারফ প্রতিটি প্রসঙ্গের স্যুইচ রেকর্ড করে (প্রতিটি থ্রেড কত সময় ব্যবহার করে তার নিখুঁত পুনর্গঠনের জন্য অনুমতি দেয়), এবং থ্রেডগুলি স্যুইচ করা হয় তার জন্য কল স্ট্যাকগুলি, এবং থ্রেড অন্য থ্রেডটি প্রস্তুত করার জন্য কল স্ট্যাকগুলি অপেক্ষার চেইনগুলি সনাক্ত করার অনুমতি দেয় এবং কেন একটি থ্রেড অনুসন্ধান করে finding চলছে না
  • xperf সমস্ত প্রক্রিয়া থেকে সমস্ত ফাইল I / O রেকর্ড করে
  • xperf সমস্ত প্রক্রিয়া থেকে সমস্ত ডিস্ক I / O রেকর্ড করে
  • xperf কোন উইন্ডোটি সক্রিয়, সিপিইউ ফ্রিকোয়েন্সি, সিপিইউ পাওয়ার স্টেট, ইউআই বিলম্ব ইত্যাদি রেকর্ড করে
  • এক্সপারফ একটি প্রক্রিয়া থেকে সমস্ত হ্যাপ বরাদ্দ, সমস্ত প্রক্রিয়া থেকে সমস্ত ভার্চুয়াল বরাদ্দ এবং আরও অনেক কিছু রেকর্ড করতে পারে।

সমস্ত প্রক্রিয়াগুলির জন্য এটি একটি সময়রেখায় প্রচুর ডেটা। উইন্ডোজের অন্য কোনও প্রোফাইলার এটি করতে পারবেন না।

এক্সপারফ / ইটিডাব্লু কীভাবে ব্যবহার করতে হয় সে সম্পর্কে আমি ব্যাপকভাবে ব্লগ করেছি। এই ব্লগ পোস্ট, এবং কিছু পেশাগতভাবে মানের প্রশিক্ষণ ভিডিও, এখানে পাওয়া যাবে: http://randomascii.wordpress.com/2014/08/19/etw-training-videos-available-now/

আপনি যদি xperf ব্যবহার না করেন তবে কী হতে পারে তা যদি আপনি এই ব্লগ পোস্টগুলি পড়েন তবে তা জানতে চান: http://randomascii.wordpress.com / ক্যাটাগরি / ইনসভেটিভেটিভ / রেকর্ডিং / এটি অন্যান্য লোকের কোডগুলিতে আমি খুঁজে পেয়েছি এমন পারফরম্যান্স সমস্যার গল্পগুলি are , এটি বিকাশকারীদের দ্বারা খুঁজে পাওয়া উচিত ছিল। এর মধ্যে রয়েছে mshtml.dll ভিসি ++ কম্পাইলারে লোড করা, ভিসি ++ এর ফাইন্ড-ইন ফাইলগুলিতে পরিষেবা প্রত্যাখ্যান, গ্রাহক মেশিনের এক বিস্ময়কর সংখ্যায় তাপীয় থ্রোটলিং, ভিজুয়াল স্টুডিওতে ধীর একক পদক্ষেপ, একটি হার্ড-জিবিতে 4 জিবি বরাদ্দ ডিস্ক ড্রাইভার, একটি পাওয়ারপয়েন্ট পারফরম্যান্স বাগ এবং আরও অনেক কিছু।


1

আমি স্রেফ CXProf- র প্রথম ব্যবহারযোগ্য সংস্করণটি সি ++ এর জন্য পোর্টেবল ম্যানুয়াল চালিত প্রোফাইল লাইব্রেরিটি শেষ করেছি।

এটি নিম্নলিখিত লক্ষ্যগুলি পূরণ করে:

  • সহজ সংহত
  • সংকলনের সময় সহজেই lib অপসারণ
  • রানটাইমের সময় খুব সহজেই লিবটি সরিয়ে ফেলুন
  • মাল্টিথ্রেডেড অ্যাপ্লিকেশনগুলির জন্য সমর্থন
  • বিতরণ সিস্টেমের জন্য সমর্থন
  • সর্বনিম্ন উপর প্রভাব রাখুন

এই পয়েন্টগুলি প্রকল্প উইকি থেকে ছিন্ন করা হয়েছে , আরও বিশদ জানতে এখানে দেখুন।

দাবি অস্বীকার: আমি সিএক্সএক্সপ্রফের প্রধান বিকাশকারী


1

কেবল এটি ছুঁড়ে ফেলার জন্য, যদিও এটি কোনও পুরোপুরি বিকাশকারী প্রোফাইলার না: আপনি যদি সমস্ত কিছু পরে ইভেন্টের লুপগুলিকে স্থির করে থাকেন যা কোনও ইভেন্টকে দীর্ঘ প্রক্রিয়াজাত করে, তবে অ্যাডহক সরঞ্জামটি Qt এ সাধারণ বিষয়। প্রতিটি ইভেন্ট প্রক্রিয়া করতে কতক্ষণ সময় নিয়েছিল এবং কী কী ঘটনা ঘটেছিল, ইত্যাদি ট্র্যাক রাখতে এই পদ্ধতির সহজেই প্রসারিত হতে পারে। এটি কোনও সর্বজনীন প্রোফাইলার নয়, ইভেন্ট-লুপ-কেন্দ্রিক one

কিউটিতে, সমস্ত ক্রস-থ্রেড সিগন্যাল-স্লট কল ইভেন্ট লুপের মাধ্যমে সরবরাহ করা হয়, যেমন টাইমার, নেটওয়ার্ক এবং সিরিয়াল পোর্ট বিজ্ঞপ্তিগুলি এবং সমস্ত ব্যবহারকারীর ইন্টারঅ্যাকশন ,. সুতরাং, ইভেন্টের লুপগুলি পর্যবেক্ষণ করা যেখানে অ্যাপ্লিকেশনটির সময় ব্যয় করছে তা বোঝার পক্ষে একটি বড় পদক্ষেপ।


0

ডেভ পার্টনার, মূলত নুমেগা দ্বারা বিকাশিত এবং এখন মাইক্রোফোকাস দ্বারা বিতরণ করা হয়েছিল, এটি একবার প্রোফাইলিং এবং কোড বিশ্লেষণ (উদাহরণস্বরূপ মেমরি এবং রিসোর্স লিক) এর পছন্দের সমাধান ছিল। আমি সম্প্রতি এটি চেষ্টা করি নি, তাই আমি আপনাকে আশ্বাস দিতে পারি না যে এটি আপনাকে সাহায্য করবে; তবে এর সাথে আমার একবার চমৎকার ফলাফল হয়েছিল, যাতে আমাদের কোড মানের প্রক্রিয়াতে পুনরায় ইনস্টল করার বিষয়টি বিবেচনা করার বিকল্পটি (তারা একটি 14 দিনের ট্রায়াল সরবরাহ করে)


0

যদিও আপনার ওএস উইন 7, প্রোগ্রামটি এক্সপি এর অধীনে চলতে পারে না? এটি এক্সপি এর অধীনে প্রোফাইল সম্পর্কে কীভাবে এবং ফলাফলটি উইন 7 এর জন্য একটি ইঙ্গিত হওয়া উচিত।


অবশ্যই এটি হতে পারে তবে এর জন্য এমন কোনও পণ্যের জন্য লাইসেন্স কেনা দরকার যা আপনার কাঙ্ক্ষিত দেবকে কখনই ভালভাবে সমর্থন করতে পারে না বা এটি করতে কয়েক বছর সময় নিতে পারে। 1.5 কে বাজি ধরতে প্রচুর অর্থ হয়, সাথে সাথে এক্সপি বক্স ইমেজিং এবং স্থাপনের সময় ব্যয় হয়।
জেক কুজার

0

এখানে প্রচুর প্রোফাইলার তালিকাভুক্ত রয়েছে এবং আমি তাদের মধ্যে কয়েকটি চেষ্টা করেছি - তবে আমি এর ভিত্তিতে নিজের লেখাটি শেষ করেছি:

http://code.google.com/p/high-performance-cplusplus-profiler/

এটি অবশ্যই আপনার কোড বেসটি সংশোধন করা দরকার, তবে এটি বাধাগুলি সঙ্কুচিত করার জন্য নিখুঁত, সমস্ত x86 এ কাজ করা উচিত (মাল্টি-কোর বক্সগুলির সাথে সমস্যা হতে পারে, যেমন এটি আরডিএসসি ব্যবহার করে, তবে - এটি নিখুঁতভাবে নির্দেশক সময় দেওয়ার জন্য) - সুতরাং আমি এটি আমার প্রয়োজনের জন্য যথেষ্ট খুঁজে পাই ..)


প্রকল্পের এ কপি করুন github.com/michael-mayes/high-performance-cplusplus-profiler এ বর্ণনা দিয়ে floodyberry.wordpress.com/2009/10/07/...
osgx

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.