একটি হ্যাকার টেল
তারিখটি 12/02/10। বড়দিনের আগের দিনগুলি দূরে সরে যাচ্ছিল এবং আমি উইন্ডোজ প্রোগ্রামার হিসাবে বেশ বড় একটি রোড ব্লকে আঘাত করেছি। আমি একিউটাইম ব্যবহার করছি, আমি নিদ্রাহীন, চকচকে এবং খুব ঘুমের চেষ্টা করেছি, এবং আমরা যেমন কথা বলি ভিটিউন ইনস্টল করছে। আমি ভিএস ২০০৮ প্রোফাইলার ব্যবহার করার চেষ্টা করেছি এবং এটি ইতিবাচক শাস্তি দেওয়ার পাশাপাশি প্রায়শই সংবেদনশীলও হয় না। আমি এলোমেলো বিরতি কৌশল ব্যবহার করেছি। আমি কল-ট্রি পরীক্ষা করেছি। আমি ফাংশন ট্রেস নিষ্ক্রিয় করেছি। তবে বিষয়টির দুঃখজনক বেদনাদায়ক সত্যটি হ'ল আমি যে অ্যাপ্লিকেশনটির সাথে কাজ করছি সেটি মিলিয়ন লাইন কোডেরও বেশি, সম্ভবত তৃতীয় পক্ষের আরও একটি মিলিয়ন লাইনের মূল্যবান।
আমার আরও ভাল সরঞ্জাম দরকার আমি অন্যান্য বিষয়গুলি পড়েছি। আমি প্রতিটি বিষয়ে তালিকাভুক্ত প্রতিটি প্রোফাইলার চেষ্টা করে দেখেছি। এই জঞ্জাল এবং ব্যয়বহুল বিকল্পগুলির চেয়ে সহজ কিছু হতে পারে, বা প্রায় কোনও লাভের জন্য হাস্যকর পরিমাণে কাজ করা উচিত। বিষয়গুলিকে আরও জটিল করার জন্য, আমাদের কোডগুলি ভারীভাবে থ্রেড করা হয়েছে এবং বেশিরভাগ কিউটি ইভেন্ট ইভেন্ট লুপগুলি চালায়, যার মধ্যে কিছু এতটাই নাজুক যে তারা সময়সীমা বিলম্বের কারণে ভারী উপকরণের মধ্যে ক্র্যাশ হয়ে যায়। আমরা কেন একাধিক ইভেন্ট লুপ চালাচ্ছি আমাকে জিজ্ঞাসা করবেন না। কেউ আমাকে বলতে পারে না।
উইন্ডোজ এনভায়রনমেন্টে ভালগ্রাইন্ডের লাইন ধরে আরও কি বিকল্প আছে?
আমি ইতিমধ্যে চেষ্টা করেছি ভাঙ্গা সরঞ্জাম দীর্ঘ সোয়াথ এর চেয়ে ভাল কিছু আছে?
কিউটির সাথে সংহত করার জন্য কি এমন কিছু নকশা করা হয়েছে, সম্ভবত সারিবদ্ধ ইভেন্টগুলির দরকারী প্রদর্শন সহ?
আমি যে সরঞ্জামগুলির চেষ্টা করেছি তার একটি সম্পূর্ণ তালিকা এবং তাত্পর্যগুলিতে সত্যই কার্যকর ছিল:
- একিউটাইম: বরং ভাল! গভীর পুনরাবৃত্তি নিয়ে কিছুটা সমস্যা রয়েছে তবে কল গ্রাফ এই ক্ষেত্রে সঠিক এবং আপনার যে কোনও বিভ্রান্তি থাকতে পারে তা পরিষ্কার করতে ব্যবহার করা যেতে পারে। একটি নিখুঁত সরঞ্জাম নয়, তবে চেষ্টা করার মতো। এটি আপনার প্রয়োজন অনুসারে হতে পারে এবং বেশিরভাগ সময় এটি অবশ্যই আমার পক্ষে যথেষ্ট ছিল।
- ডিবাগ মোডে এলোমেলো বিরতি আক্রমণ: সময়ের যথেষ্ট পরিমাণে তথ্য নয়।
একটি ভাল সরঞ্জাম তবে একটি সম্পূর্ণ সমাধান নয়। - সমান্তরাল স্টুডিওগুলি: পারমাণবিক বিকল্প। বাধা, অদ্ভুত এবং ক্রেজি শক্তিশালী। আমি মনে করি আপনার 30 দিনের মূল্যায়ন করতে হবে এবং এটি খুব উপযুক্ত কিনা তা খুঁজে বের করুন। এটাও খুব শীতল।
- এএমডি কোডানালিস্ট: বিস্ময়কর, সহজেই ব্যবহারযোগ্য, খুব ক্রাশ-প্রবণ, তবে আমি মনে করি এটি একটি পরিবেশগত বিষয়। আমি এটি চেষ্টা করার পরামর্শ দিই, এটি নিখরচায়।
- লুক স্ট্যাকওয়াকার: ছোট প্রকল্পগুলিতে খুব ভাল কাজ করে, এটি আমাদের উপর কাজ করার জন্য এটি চেষ্টা করার জন্য কিছুটা চেষ্টা করা হচ্ছে। কিছু ভাল ফলাফল যদিও, এবং এটি অবশ্যই আমার ব্যক্তিগত কাজের জন্য স্লিপিকে প্রতিস্থাপন করে।
- পিউরিফ্লাস: উইন-এক্স 64 পরিবেশের পক্ষে কোনও সমর্থন নেই, সর্বাধিক সুস্পষ্টভাবে উইন্ডোজ 7. অন্যথায় দুর্দান্ত excellent অন্যান্য বিভাগের আমার বেশ কয়েকজন সহকর্মী এর শপথ করে।
- ভিএস ২০০৮ প্রোফাইলার: প্রয়োজনীয় রেজোলিউশনে ফাংশন ট্রেস মোডে 100 + জিগস পরিসরে আউটপুট উত্পাদন করে। প্লাস দিকে, কঠিন ফলাফল উত্পাদন করে।
- জিপিআরফ: জিসিসিকে এমনকি পরিমিতভাবে কার্যকর হতে হবে।
- ভিটিউন: ভিটিউনের ডাব্লু 7 অপরাধীর উপর সীমানা সমর্থন করে। অন্যথায় দুর্দান্ত
- পিন: আমার নিজের সরঞ্জামটি হ্যাক করতে হবে, সুতরাং এটি একটি সর্বশেষ সমাধানের ধরণ।
- নিদ্রাহীন \ খুব ঘুমন্ত: ছোট অ্যাপ্লিকেশনগুলির জন্য দরকারী, তবে এখানে আমাকে ব্যর্থ করছেন।
- ইজিপ্রোফিলার: কোথায় ইনস্টল করতে হবে তা নির্দেশ করার জন্য আপনাকে ম্যানুয়ালি ইনজেকশন কোডের কিছুটা আপত্তি না থাকলে খারাপ নয়।
- ভালগ্রাইন্ড: * নিক্স কেবল তবে আপনি যখন সেই পরিবেশে থাকেন তখন খুব ভাল।
- অপ্রোফাইল: কেবল লিনাক্স।
- প্রফিট: তারা বন্য ঘোড়া গুলি।
প্রস্তাবিত সরঞ্জামগুলি যা আমি চেষ্টা করি নি:
- Xperf:
- Glowcode:
- Devpartner:
নোটস: এই মুহুর্তে ইন্টেল পরিবেশ। VS2008, লাইব্রেরি বুস্ট। Qt 4+। এবং তাদের সকলের নিকৃষ্ট হামিনজার: ট্রলটেকের মাধ্যমে কিউটি / এমএফসি সংহত।
এখন: প্রায় দুই সপ্তাহ পরে, দেখে মনে হচ্ছে আমার সমস্যাটি সমাধান হয়েছে। তালিকার প্রায় সমস্ত কিছু এবং আমার ব্যক্তিগত কৌশলগুলি সহ বিভিন্ন সরঞ্জামের জন্য ধন্যবাদ, আমরা প্রাথমিক বাধা পেয়েছি। যাইহোক, আমি পরীক্ষার, অন্বেষণ এবং নতুন প্রোফাইলার পাশাপাশি নতুন প্রযুক্তি চেষ্টা করে যাচ্ছি। কেন? কারণ আমি এটি আপনার কাছে guysণী, আপনি ছেলেরা কারণ। এটি টাইমলাইনটি কিছুটা কমিয়ে দেয় তবে আমি নতুন সরঞ্জামগুলি চেষ্টা করে চালিয়ে যেতে এখনও খুব আগ্রহী।
সংক্ষিপ্তসার
অন্যান্য অনেক সমস্যার মধ্যে, বেশ কয়েকটি উপাদান সম্প্রতি ভুল থ্রেডিং মডেলটিতে স্যুইচ করা হয়েছিল, আমাদের নীচের কোডটি হঠাৎ করে আর মাল্টিথ্রেড না হওয়ার কারণে মারাত্মক হ্যাং-আপ ঘটায়। আমি আরও বলতে পারি না কারণ এটি আমার এনডিএ লঙ্ঘন করে তবে আমি আপনাকে বলতে পারি যে এটি নৈমিত্তিক পরিদর্শন বা এমনকি সাধারণ কোড পর্যালোচনা দ্বারা কখনও পাওয়া যায়নি। প্রোফাইলার, কলগ্রাফ এবং একত্রে এলোমেলোভাবে বিরতি ছাড়াই আমরা এখনও আকাশের সুন্দর নীল সিন্দুতে আমাদের ক্রোধকে চিৎকার করব। ধন্যবাদ, আমি দেখা হয়েছি এমন সেরা হ্যাকারদের কয়েকজনের সাথে আমি কাজ করি এবং দুর্দান্ত সরঞ্জাম এবং মহান ব্যক্তিদের দ্বারা পরিপূর্ণ একটি আশ্চর্যজনক 'শ্লোকটিতে আমার অ্যাক্সেস রয়েছে।
ভদ্রলোক, আমি এটির গভীরভাবে প্রশংসা করি, এবং কেবলমাত্র আফসোস করছি যে আপনার প্রতিদানকে পুরস্কৃত করার মতো যথেষ্ট প্রতিবেদন আমার নেই। আমি এখনও মনে করি যে এসওতে আমরা এ পর্যন্ত পেয়েছি তার থেকে ভাল উত্তর পাওয়ার জন্য এটি একটি গুরুত্বপূর্ণ প্রশ্ন is
ফলস্বরূপ, পরের তিন সপ্তাহের জন্য প্রতি সপ্তাহে, আমি আমার সাধ্যের মধ্যে সবচেয়ে বড় অনুগ্রহটি রেখে যাচ্ছি এবং উত্তরের কাছে যে সরঞ্জামটি আমার কাছে সাধারণ জ্ঞান নয় তা উত্তর দিয়ে এটি প্রদান করব। তিন সপ্তাহ পরে, আমরা আশা করি প্রোফাইলগুলির একটি নির্দিষ্ট প্রোফাইল সংগ্রহ করেছি, যদি আপনি আমার শাস্তি ক্ষমা করেন।
টেক-অ্যাওয়ে
প্রোফাইলার ব্যবহার করুন। তারা রিচি, কার্নিগান, বেন্টলে এবং নথের পক্ষে যথেষ্ট ভাল। আপনি কে ভাবেন সেদিকে আমার কোন খেয়াল নেই। একটি প্রোফাইলার ব্যবহার করুন। আপনি যা পেয়েছেন সেটি যদি কাজ না করে তবে অন্য একটি সন্ধান করুন। আপনি যদি একটি খুঁজে না পান তবে একটি কোড। আপনি যদি একটি কোড করতে না পারেন, বা এটি একটি ছোট হ্যাং আপ, বা আপনি কেবল আটকে আছেন, এলোমেলোভাবে বিরতি ব্যবহার করুন। অন্য সমস্ত কিছু যদি ব্যর্থ হয় তবে একজন প্রোফাইলার বাজানোর জন্য কিছু গ্রেডের ছাত্র নিয়োগ করুন।
একটি দীর্ঘ ভিউ
সুতরাং, আমি ভেবেছিলাম এটি কিছুটা পূর্ববর্তী দিক থেকে লিখলে ভাল লাগবে। আমি সমান্তরাল স্টুডিওগুলির সাথে বিস্তৃতভাবে কাজ করার বিকল্প বেছে নিয়েছিলাম, কারণ এটি পিন সরঞ্জামের উপরে নির্মিত। জড়িত কিছু গবেষকের সাথে একাডেমিক লেনদেন করার পরে, আমি অনুভব করেছি যে এটি সম্ভবত কিছু মানের একটি চিহ্ন। ধন্যবাদ, আমি ঠিক ছিল। জিইউআই কিছুটা ভয়ঙ্কর হলেও আমি আইপিএসটিকে অবিশ্বাস্যরূপে কার্যকর বলে মনে করেছি, যদিও আমি স্বাচ্ছন্দ্যে সবার জন্য এটি সুপারিশ করতে পারি না। সমালোচনামূলকভাবে, লাইন-লেভেল হিট গণনা পাওয়ার কোনও সুস্পষ্ট উপায় নেই, এটিইকিউটি এবং অন্যান্য বেশ কয়েকটি প্রোফাইলার সরবরাহ করে এবং আমি অন্যান্য বিষয়গুলির মধ্যে শাখা-নির্বাচনের হার পরীক্ষা করার জন্য খুব দরকারী বলে খুঁজে পেয়েছি। নেট হিসাবে, আমি পাশাপাশি একিউটাইম ব্যবহার করে উপভোগ করেছি এবং আমি তাদের সমর্থনটি সত্যই প্রতিক্রিয়াশীল বলে খুঁজে পেয়েছি। আবার, আমাকে আমার প্রস্তাবটি যোগ্য করতে হবে: তাদের বৈশিষ্ট্যগুলির অনেকগুলি এটি ভালভাবে কাজ করে না এবং তাদের মধ্যে কয়েকটি উইন 7 এক্স 64-তে সরাসরি ক্র্যাশ-প্রবণ। এক্সফিউর প্রশংসনীয়ভাবে সঞ্চালনও করেছেন, তবে নির্দিষ্ট ধরণের অ্যাপ্লিকেশনগুলিতে ভাল পাঠ পেতে প্রয়োজনীয় নমুনা বিশদের জন্য তীব্রভাবে ধীরে ধীরে।
এই মুহুর্তে, আমাকে বলতে হবে যে আমি মনে করি না যে ডাব্লু xx64৪ পরিবেশে সি ++ কোডের প্রোফাইল দেওয়ার জন্য একটি নির্দিষ্ট বিকল্প নেই, তবে অবশ্যই এমন বিকল্প রয়েছে যা কেবল কোনও কার্যকর পরিষেবা সম্পাদনে ব্যর্থ হয়।