Apex Heap Size এবং CPU Time Limit Salesforce-এ কোডের কার্যক্ষমতা ও কার্যক্ষম সীমার মধ্যে কার্যক্রম পরিচালনা করতে গুরুত্বপূর্ণ ভূমিকা পালন করে।
Heap Size হলো এমন একটি সীমা, যা একটি Transaction চলাকালীন মেমোরিতে সংরক্ষিত ডেটার সর্বোচ্চ আকারকে নির্ধারণ করে। Apex-এ একটি Transaction চলাকালীন সর্বাধিক ৬ এমবি (Synchronous Apex) এবং ১২ এমবি (Asynchronous Apex) পর্যন্ত Heap Size ব্যবহার করা যায়। যদি Heap Size লিমিট অতিক্রম করে, তাহলে একটি "Apex heap size too large" Exception তৈরি হয় এবং Transaction বন্ধ হয়ে যায়।
null
সেট করুন।public class HeapSizeExample {
public void processLargeData() {
List<Account> accounts = [SELECT Id, Name FROM Account LIMIT 1000];
// প্রয়োজন শেষে বড় ডেটাসেট ক্লিয়ার করা
accounts = null;
System.debug('Heap Size optimized by clearing unused data');
}
}
CPU Time Limit হলো এমন একটি সীমা, যা একটি Transaction-এ কোড এক্সিকিউশনের সময় নির্ধারণ করে। Salesforce একটি Transaction-এ সর্বাধিক ১০,০০০ মিলিসেকেন্ড (১০ সেকেন্ড) পর্যন্ত CPU সময় বরাদ্দ করে। যদি কোনো Transaction CPU Time Limit অতিক্রম করে, তবে "Apex CPU time limit exceeded" Exception তৈরি হয় এবং Transaction বন্ধ হয়ে যায়।
public class CPUTimeExample {
public void processData() {
List<Account> accounts = [SELECT Id, Name FROM Account LIMIT 100];
// Loop-এর ভিতরে DML এড়িয়ে চলা
for (Account acc : accounts) {
acc.Name = acc.Name + ' Updated';
}
// Loop-এর বাইরে DML অপারেশন ব্যবহার করা
update accounts;
System.debug('CPU Time optimized by avoiding DML inside loop');
}
}
বৈশিষ্ট্য | Heap Size | CPU Time Limit |
---|---|---|
প্রধান উদ্দেশ্য | মেমোরিতে ডেটা সংরক্ষণের সীমা নির্ধারণ | কোড এক্সিকিউশনের CPU সময় নির্ধারণ |
সীমা | Sync-এ ৬ এমবি, Async-এ ১২ এমবি | ১০,০০০ মিলিসেকেন্ড (১০ সেকেন্ড) |
Exception | Apex heap size too large | Apex CPU time limit exceeded |
অপ্টিমাইজেশনের কৌশল | ডেটাসেট ফিল্টার, Batch Apex ব্যবহার করা | Loop অপ্টিমাইজ, Async Apex ব্যবহার করা |
ব্যবহার | বড় ডেটাসেট বা অনেক অবজেক্ট প্রসেস করা | বড় লজিক, Loop বা Recursive Trigger হ্যান্ডল করা |
অপ্রয়োজনীয় ডেটা হ্যান্ডেলিং এড়িয়ে চলুন: মেমোরিতে ডেটা জমা রাখার সময় শুধু প্রয়োজনীয় তথ্য রাখুন এবং বড় ডেটাসেট দ্রুত রিলিজ করুন।
Async Apex ব্যবহার: বড় ও লং রানিং অপারেশন বা বড় ডেটাসেট প্রসেসিং করার জন্য Asynchronous Apex (Batch, Future, Queueable) ব্যবহার করুন।
Debug Logs এবং Governor Limits ব্যবহার করুন: Debug Logs এবং Governor Limits মনিটরিং করে অপ্টিমাইজেশন এবং অপ্টিমাইজেশন সমস্যাগুলো চিহ্নিত করুন।
Apex Heap Size এবং CPU Time Limit Salesforce-এর Governor Limits-এর গুরুত্বপূর্ণ অংশ, যা কোডের কার্যক্ষমতা উন্নত করতে ও সীমার মধ্যে কার্যক্রম পরিচালনা করতে সহায়ক।
common.read_more