ক্রোমিয়াম ক্রনিকল #7: প্রিপ্রসেসিং সোর্স

পর্ব 7: সিয়াটলে ব্রুস ডসন দ্বারা, WA (অক্টোবর, 2019)
আগের পর্বগুলো

কখনও কখনও এটি একটি একক ক্রোমিয়াম সোর্স ফাইল হাতে কম্পাইল করা সহায়ক, সম্ভবত কম্পাইলার অপ্টিমাইজেশান বিকল্পগুলির সাথে পরীক্ষা করার জন্য, কিছু সূক্ষ্ম ম্যাক্রো বিবরণ বোঝার জন্য এটিকে একটি একক ফাইলে প্রিপ্রসেস করতে, বা একটি কম্পাইলার বাগ ছোট করতে।

কয়েকটি কৌশল একটি Chromium বিকাশকারীকে প্রয়োজন অনুযায়ী পরিবর্তন সহ একটি নির্দিষ্ট উৎস ফাইল কম্পাইল করে এমন কমান্ড খুঁজে পেতে এবং কার্যকর করতে দেবে।

আপনার আউটপুট ডিরেক্টরিতে গিয়ে এবং ^ প্রত্যয় ব্যবহার করে আগ্রহের ফাইল (এবং যেকোনো নির্ভরতা) কম্পাইল করতে অটোনিঞ্জা (বা নিনজা) ব্যবহার করে শুরু করুন। এই প্রত্যয়টি নিনজাকে এই ক্ষেত্রে নির্দিষ্ট file—version.o এর আউটপুট তৈরি করতে বলে। তারপরে, ফাইলটি স্পর্শ করুন এবং নিনজাতে -v (ভারবোজ) পতাকা দিয়ে এটি (এবং শুধুমাত্র এটি) আবার কম্পাইল করুন :

লিনাক্স বা ওএসএক্সে:

autoninja ../../base/version.cc^
touch ../../base/version.cc
autoninja -v ../../base/version.cc^

উইন্ডোজ সিএমডি শেল ^ একটি বিশেষ অক্ষর এবং এস্কেপ করা আবশ্যক:

C:\> autoninja ../../base/version.cc^^
C:\> touch ../../base/version.cc
C:\> autoninja -v ../../base/version.cc^^

autoninja -v কমান্ডের সাধারণ আউটপুট এইরকম দেখায় (উল্লেখযোগ্যভাবে ছাঁটা):

..\..\third_party\llvm-build\Release+Asserts\bin\clang-cl.exe /nologo /showIncludes -imsvc ...

এই কমান্ডটি আপনাকে আগ্রহের ফাইল কম্পাইল করতে দেয়। প্রিপ্রসেসড আউটপুট পেতে, নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করুন:

লিনাক্স বা ওএসএক্সে, শেষ থেকে -o obj/base/base/version.o ব্লকটি সরান এবং -E যোগ করুন । এটি কম্পাইলারকে প্রিপ্রসেস করা ফাইলটিকে stdout এ প্রিন্ট করতে বলে।

আউটপুটটিকে একটি ফাইলে পুনঃনির্দেশিত করুন, যেমন:

../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD ... -E >version.i

উইন্ডোজে, শুরু থেকে /showIncludes অপশনটি সরান (এটি প্রতিটি #include এর জন্য আউটপুটের একটি লাইন প্রিন্ট করে) এবং তারপর ফাইলটিকে কম্পাইল করার পরিবর্তে প্রিপ্রসেস করার জন্য /P যোগ করুন । ফলাফল বর্তমান ডিরেক্টরি version.i সংরক্ষণ করা হবে.i:

..\..\third_party\llvm-build\Release+Asserts\bin\clang-cl.exe /nologo -imsvc ... /P

এখন আপনি ম্যাক্রোগুলি আসলে কী করছে তা দেখতে প্রি-প্রসেস করা ফাইলটি পরীক্ষা করতে পারেন, বা পরীক্ষামূলক কম্পাইলার-সুইচ পরিবর্তন করতে পারেন এবং কী হয় তা দেখতে পুনরায় কম্পাইল করতে পারেন।

অতিরিক্ত সম্পদ

  • ফাস্ট ক্রোম বিল্ডস : আরও বিল্ড-অপ্টিমাইজেশন টিপসের জন্য (উইন্ডোজে ফোকাস করা হয়েছে)।
  • ETW : ETW (এছাড়াও Xperf নামেও পরিচিত) ডক্স পড়ে—ক্রোমে বা বিল্ডে—উইন্ডোজ পারফরম্যান্স সমস্যাগুলি কীভাবে খুঁজে পাবেন তা খুঁজে বের করুন।