Go 1.20 প্রোফাইল-গাইডেড অপ্টিমাইজেশান এবং ল্যাঙ্গুয়েজ এনহান্সমেন্টের জন্য প্রিভিউ প্রবর্তন করে
Go 1.20, Google-উন্নত ওপেন সোর্স ভাষার সর্বশেষ আপডেট, প্রোফাইল-গাইডেড অপ্টিমাইজেশান (PGO) এবং ভাষার উন্নতির জন্য একটি পূর্বরূপ অন্তর্ভুক্ত করে। PGO ইনলাইনিং অপ্টিমাইজেশানের মাধ্যমে 3% থেকে 4% পারফরম্যান্স উন্নত করে, যখন অন্যান্য অপ্টিমাইজেশন পাইপলাইনে রয়েছে৷

Go 1.20, Google-এর তৈরি ওপেন-সোর্স ভাষার প্রোডাকশন রিলিজ, এর সরলতা, সঙ্গতি এবং কার্যকরী প্রোগ্রামিং বৈশিষ্ট্যগুলির জন্য উদযাপন করা হয়েছে, কম্পাইলারের জন্য প্রোফাইল-গাইডেড অপ্টিমাইজেশান (PGO) এর পূর্বরূপ সহ চালু করা হয়েছে। Go 1.20 অফিসিয়াল go.dev ওয়েবসাইট থেকে ডাউনলোড করা যেতে পারে।
Go 1.20-এ PGO-এর প্রিভিউ সহ, কম্পাইলার টুলচেন রানটাইম প্রোফাইল তথ্যের উপর নির্ভর করে অ্যাপ্লিকেশন এবং কাজের চাপ-নির্দিষ্ট অপ্টিমাইজেশন চালাতে পারে। বর্তমান কম্পাইলার pprof CPU প্রোফাইল সমর্থন করে, যা রানটাইম/pprof বা net/http/pprof প্যাকেজ ব্যবহার করে সংগ্রহ করা যেতে পারে।
ফিডব্যাক-নির্দেশিত অপ্টিমাইজেশান নামেও পরিচিত, পিজিও-তে অ্যাপ্লিকেশনটির পরবর্তী বিল্ডের জন্য কম্পাইলারে অ্যাপ্লিকেশনটির প্রতিনিধিত্ব থেকে প্রোফাইল ডেটা ফিড করা জড়িত। এই তথ্য ব্যবহার করে, কম্পাইলার আরও অবগত অপ্টিমাইজেশন সিদ্ধান্ত নিতে পারে। Go প্রোগ্রামের একটি প্রতিনিধি সেটের মানদণ্ড দেখায় যে PGO ইনলাইনিং অপ্টিমাইজেশান সক্ষম করলে কার্যক্ষমতা প্রায় 3% থেকে 4% বৃদ্ধি পায়। ভবিষ্যত রিলিজ আরও PGO অপ্টিমাইজেশান চালু করবে বলে আশা করা হচ্ছে।
PGO প্রবর্তনের পাশাপাশি, Go 1.20 ভাষাতেও চারটি পরিবর্তন এনেছে। প্রথমত, একটি স্লাইসকে একটি অ্যারে পয়েন্টারে রূপান্তর করার ক্ষমতা, যা 2021-এর Go 1.17-এ প্রবর্তিত হয়েছিল, এখন একটি স্লাইস থেকে একটি অ্যারেতে রূপান্তর পর্যন্ত প্রসারিত। দ্বিতীয়ত, অনিরাপদ প্যাকেজটিতে তিনটি নতুন ফাংশন রয়েছে: স্লাইসডেটা, স্ট্রিং এবং স্ট্রিংডেটা। এই ফাংশনগুলি তাদের সঠিক উপস্থাপনা নির্বিশেষে স্লাইস এবং স্ট্রিং মানগুলি তৈরি এবং বিনির্মাণ করার সম্পূর্ণ ক্ষমতা প্রদান করে।
তৃতীয়ত, স্পেসিফিকেশন এখন প্রতিষ্ঠিত করে যে struct মানগুলিকে এক সময়ে একটি ক্ষেত্রের সাথে তুলনা করা হয়, স্ট্রাকট টাইপ সংজ্ঞায় প্রদর্শিত ক্রম অনুসারে ক্ষেত্রগুলিকে বিবেচনা করে এবং প্রথম অমিলে থামানো হয়। চতুর্থত, তুলনামূলক প্রকার যেমন সাধারণ ইন্টারফেসগুলি তুলনামূলক সীমাবদ্ধতাগুলিকে সন্তুষ্ট করতে পারে, এমনকি টাইপ আর্গুমেন্টগুলি কঠোরভাবে তুলনাযোগ্য না হলেও। এটি একটি নন-কঠোরভাবে তুলনাযোগ্য টাইপ আর্গুমেন্টের সাথে তুলনামূলক সীমাবদ্ধতার দ্বারা সীমাবদ্ধ একটি টাইপ প্যারামিটারের ইনস্ট্যান্টেশন সক্ষম করে, যেমন একটি ইন্টারফেস প্রকার বা একটি যৌগিক প্রকার যাতে একটি ইন্টারফেস প্রকার থাকে।
এই ভাষা পরিবর্তনগুলি ছাড়াও, Go 1.20 অন্যান্য বিভিন্ন উন্নতির সাথে আসে, যেমন অ্যাপ্লিকেশন এবং ইন্টিগ্রেশন পরীক্ষা সহ প্রোগ্রামগুলির জন্য সমর্থনকারী কোড কভারেজ প্রোফাইল সংগ্রহ। ডাইরেক্টরি $GOROOT/pkg স্ট্যান্ডার্ড লাইব্রেরির জন্য প্রি-কম্পাইল করা প্যাকেজ অ্যাক্টিভিটি আর রাখে না, যা Go ডিস্ট্রিবিউশন সাইজ কমিয়ে দেয় এবং cgo প্যাকেজের জন্য C টুলচেন স্কু এড়িয়ে যায়। অধিকন্তু, go test –json এর বাস্তবায়ন দৃঢ়তা বাড়ানোর জন্য সুদৃঢ় করা হয়েছে, যখন go version -m কমান্ড এখন বিস্তৃত পরিসরের Go বাইনারী পড়ে, যার মধ্যে Windows DLLs এবং Linux বাইনারিগুলি কার্যকর করার অনুমতি ছাড়াই রয়েছে।
Go 1.20 এছাড়াও RISC-V-এ FreeBSD-এর জন্য পরীক্ষামূলক সমর্থন নিয়ে আসে এবং C টুলচেন ছাড়া সিস্টেমে ডিফল্টরূপে cgo নিষ্ক্রিয় করে। যাইহোক, Go 1.20 হবে macOS 10.13 High Sierra এবং 10.14 Mojave সমর্থন করার জন্য শেষ রিলিজ, Go 1.21 এর জন্য macOS 10.15 Catalina বা তার পরে প্রয়োজন।
AppMaster.io- এর মতো No-code প্ল্যাটফর্ম Go 1.20-এর মতো নতুন অপ্টিমাইজ করা ভাষাগুলিকে অন্তর্ভুক্ত করে ব্যাপকভাবে উপকৃত হতে পারে। ওয়েব, মোবাইল এবং ব্যাকএন্ড অ্যাপ্লিকেশনগুলির জন্য এই ধরনের শক্তিশালী সরঞ্জামগুলিকে একীভূত করার মাধ্যমে, ব্যবসাগুলি উত্পাদনশীলতা, ব্যবহারকারীর অভিজ্ঞতা এবং মাপযোগ্যতার ক্ষেত্রে উল্লেখযোগ্য উন্নতি অর্জন করতে পারে। প্রযুক্তি বক্ররেখায় এগিয়ে থাকার জন্য no-code এবং low-code অ্যাপ ডেভেলপমেন্ট সম্পর্কে আরও জানুন।


