"ইনক্রিমেন্টাল লিঙ্কিং" কী?


105

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

এটির অর্থ কি সম্পূর্ণরূপে প্রোগ্রামটি কার্যকর হওয়ার সময় বিভিন্ন সময়ে ডিএলএল লোড করে, যেমনটি একবার চালু হওয়ার পরে একবারে প্রয়োগ করা হয়েছিল?

আমি কি পুরোপুরি বন্ধ? :)


1
আমি গনুহ LD জন্য একটি উত্তর যোগ কিন্তু এটি মোছা হয়েছে, এখানে একটি অনুরূপ এগুলির মধ্যে একটি: stackoverflow.com/questions/29391965/...
সিরো Santilli郝海东冠状病六四事件法轮功

এটি হয়তো মুছে ফেলা হয়েছে কারণ কপি, আটকানো ও বিকিরণ ঘটে খারাপ - কোন ব্যাপার কিভাবে ভাল বিষয়বস্তু en.wikipedia.org/wiki/Don%27t_repeat_yourself
মার্চ

উত্তর:


122

লিঙ্কিংয়ের সাথে আপনার উত্স ফাইলগুলি থেকে নির্মিত সমস্ত .obj ফাইলগুলির সাথে একত্রে আপনার আউটপুটে (যেমন .exe বা .dll) উল্লেখ করা কোনও .lib ফাইল অন্তর্ভুক্ত রয়েছে।

ইনক্রিমেন্টাল লিঙ্ক ছাড়াই, প্রতিবার স্ক্র্যাচ থেকে এটি করতে হবে।

বর্ধিত লিঙ্কগুলি এমন লিঙ্কগুলি আপনার এপিকে / ডেলিকে এমনভাবে যুক্ত করে যা আপনি যখন কোনও ছোট পরিবর্তন করেন এবং পুনরায় সংকলন করেন তখন লিঙ্কারের পক্ষে বিদ্যমান এক্সি / ডিএল আপডেট করা সহজ করে তোলে।

সুতরাং, ইনক্রিমেন্টাল লিঙ্কিং কেবল আপনার প্রকল্পটি সংকলন এবং লিঙ্ক করা দ্রুততর করে তোলে।

এটির একমাত্র রানটাইম প্রভাবটি হ'ল এটি এখানে আপনার ডেস্ক্রিপিকৃত হিসাবে আপনার উদাহরণ / dll সামান্য বড় এবং ধীর করতে পারে:

http://msdn.microsoft.com/en-us/library/4khtbfyf.aspx

সম্পাদনা: লোগানের দ্বারা বর্ণিত হিসাবে, ইনক্রিমেন্টাল লিঙ্কিং লিঙ্ক টাইম কোড জেনারেশনের সাথেও বেমানান - সুতরাং সম্ভাব্য পারফরম্যান্স অপটিমাইজেশন হারাতে পারে।

আপনি গতি বিকাশের জন্য ডিবাগ বিল্ডগুলির জন্য ইনক্রিমেন্টাল লিঙ্ক ব্যবহার করতে চাইতে পারেন, তবে রানটাইম কর্মক্ষমতা উন্নত করতে রিলিজ বিল্ডগুলির জন্য এটি অক্ষম করুন।

বিলম্বিত ডিএলএলগুলি আপনি যা ভাবছেন তা হতে পারে:

http://msdn.microsoft.com/en-us/library/151kt790.aspx


আহ, আমি ভেবেছিলাম লিঙ্কাররা সবসময় যাইহোক এটি করে! সুতরাং, বন্ধ হয়ে যাওয়া incremental linkingলিঙ্কারকে প্রতিটি বার স্ক্র্যাচ থেকে লিঙ্ক করে দেবে?
রাসেল

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

2
@ রাসেল: হ্যাঁ তা হবে। @ লোগান: ধন্যবাদ, আমি আমার উত্তর আপডেট করেছি।
স্যাকসন ড্রুস

সুতরাং তার মানে কি আমাদের উত্পাদন বিল্ডগুলির জন্য এই বিকল্পটি বন্ধ করা উচিত?
আরবিটি

1
@ আরবিটি, হ্যাঁ আপনার অবশ্যই
অজয়

15

এছাড়াও, বেশ গুরুত্বপূর্ণ বিষয় হল, ইনক্রিমেন্টাল লিঙ্কটি পূর্বশর্ত Edit&Continue- সম্ভবত আপনার কোডটি সম্পাদনা করা এবং পুনরায় চালু না করে ফ্লাইতে এটি পুনরায় সংকলন করা।

সুতরাং ডিবাগ বিল্ডগুলি থাকা ভাল জিনিস, তবে বিল্ডগুলি মুক্তি দেয় না।

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