কিছু সময়ের জন্য পিএইচপি ব্যবহার করার পরে, আমি লক্ষ্য করেছি যে সমস্ত বিল্ট-ইন পিএইচপি ফাংশন প্রত্যাশার চেয়ে তত দ্রুত নয়। কোনও ফাংশনের এই দুটি সম্ভাব্য বাস্তবায়ন বিবেচনা করুন যা খুঁজে বের করে যে কোনও সংখ্যক প্রাইমসের ক্যাশে অ্যারে ব্যবহার করে প্রাইম রয়েছে কিনা।
//very slow for large $prime_array
$prime_array = array( 2, 3, 5, 7, 11, 13, .... 104729, ... );
$result_array = array();
foreach( $prime_array => $number ) {
$result_array[$number] = in_array( $number, $large_prime_array );
}
//speed is much less dependent on size of $prime_array, and runs much faster.
$prime_array => array( 2 => NULL, 3 => NULL, 5 => NULL, 7 => NULL,
11 => NULL, 13 => NULL, .... 104729 => NULL, ... );
foreach( $prime_array => $number ) {
$result_array[$number] = array_key_exists( $number, $large_prime_array );
}
এটি কারণ in_array
একটি লিনিয়ার অনুসন্ধান ও (এন) দিয়ে প্রয়োগ করা হয়েছে যা বাড়ার সাথে সাথে রৈখিকভাবে ধীর $prime_array
হয়ে যাবে। যেখানে array_key_exists
ফাংশনটি হ্যাশ লুकिंग ও (1) দিয়ে কার্যকর করা হয় যা হ্যাশ টেবিলটি অত্যন্ত জনবহুল না হওয়া পর্যন্ত ধীরে ধীরে চলবে না (এই ক্ষেত্রে এটি কেবল ও (এন))।
এখনও অবধি আমাকে ট্রায়াল এবং ত্রুটির মাধ্যমে বিগ-ও আবিষ্কার করতে হয়েছিল এবং মাঝেমধ্যে উত্স কোডটি দেখেছি । এখন প্রশ্নের ...
সমস্ত * অন্তর্নির্মিত পিএইচপি ফাংশনগুলির জন্য তাত্ত্বিক (বা ব্যবহারিক) বড় ও সময়ের একটি তালিকা আছে?
* বা কমপক্ষে আকর্ষণীয়
উদাহরণস্বরূপ, আমি তালিকাভুক্ত ফাংশন বড় হে ভবিষ্যদ্বাণী করা এটা খুঁজে খুব কঠিন কারণ সম্ভব বাস্তবায়ন পিএইচপি অজানা কোর ডাটা স্ট্রাকচার নির্ভর করে: array_merge
, array_merge_recursive
, array_reverse
, array_intersect
, array_combine
, str_replace
(অ্যারে ইনপুট সঙ্গে), ইত্যাদি
true
এবং তারপরে উপস্থিতি ব্যবহারের জন্য পরীক্ষা করা হবে isset($large_prime_array[$number])
। যদি আমি সঠিকভাবে মনে রাখি তবে এটি in_array
ক্রিয়াকলাপের চেয়ে কয়েকগুণ দ্রুত গতিযুক্ত।
array_key_exists
, আমি তুলনা করছি in_array
। in_array
অ্যারেতে প্রতিটি আইটেম পুনরাবৃত্তি করে এবং সূঁচের সাথে মানটি তুলনা করে যা আপনি এটি পাস করেন। যদি আপনি কীগুলিতে মানগুলি ফ্লিপ করেন (এবং কেবলমাত্র প্রতিটি মানকে একটি ডামি মানের সাথে প্রতিস্থাপন true
করে isset
যেমন ব্যবহার করা বহুগুণ দ্রুত হয় This এটি কারণ অ্যারের কীগুলি পিএইচপি দ্বারা সূচিত হয় (হ্যাশটেবলের মতো) quently ফলস্বরূপ, অনুসন্ধান এই পদ্ধতিতে একটি অ্যারে গতিতে উল্লেখযোগ্য উন্নতি করতে পারে