এটি আমার একটি পুরানো পোস্ট, গৃহীত উত্তরগুলি বেশিরভাগ অংশের জন্য ভাল। তবে আমি প্রতিটি সমাধান এবং অন্য একটি সুস্পষ্ট একটিকে বেনমার্ক করার সিদ্ধান্ত নিয়েছি (কেবল মজাদার জন্য)। আমি ভাবলাম যে বিভিন্ন ব্রাউজারে বিভিন্ন আকারের স্ট্রিং সহ রেজেক্স প্যাটার্নের মধ্যে কোনও পার্থক্য রয়েছে কিনা।
সুতরাং মূলত আমি jscreen অন ব্যবহার করেছি
- ক্রোম 65.0.3325 / উইন্ডোজ 10 0.0.0 এ পরীক্ষা করা হচ্ছে
- প্রান্তে 16.16299.0 / উইন্ডোজ 10 0.0.0 এ পরীক্ষা করা হচ্ছে
আমি পরীক্ষিত রেজেক্স প্যাটার্নগুলি ছিল
/[\W_]+/g
/[^a-z0-9]+/gi
/[^a-zA-Z0-9]+/g
আমি এলোমেলো অক্ষরের একটি স্ট্রিং দৈর্ঘ্য সহ এগুলি লোড করেছি
- দৈর্ঘ্য 5000
- দৈর্ঘ্য 1000
- দৈর্ঘ্য 200
আমি ব্যবহৃত জাভাস্ক্রিপ্ট উদাহরণ var newstr = str.replace(/[\W_]+/g," ");
প্রতিটি রান প্রতিটি রেজেজেসে 50 বা ততোধিক নমুনা নিয়ে গঠিত এবং আমি প্রতিটি ব্রাউজারে 5 বার চালাতাম।
আমাদের ঘোড়াগুলিকে রেস করতে দেয়!
ফলাফল
Chrome Edge
Chars Pattern Ops/Sec Deviation Op/Sec Deviation
------------------------------------------------------------------------
5,000 /[\W_]+/g 19,977.80 1.09 10,820.40 1.32
5,000 /[^a-z0-9]+/gi 19,901.60 1.49 10,902.00 1.20
5,000 /[^a-zA-Z0-9]+/g 19,559.40 1.96 10,916.80 1.13
------------------------------------------------------------------------
1,000 /[\W_]+/g 96,239.00 1.65 52,358.80 1.41
1,000 /[^a-z0-9]+/gi 97,584.40 1.18 52,105.00 1.60
1,000 /[^a-zA-Z0-9]+/g 96,965.80 1.10 51,864.60 1.76
------------------------------------------------------------------------
200 /[\W_]+/g 480,318.60 1.70 261,030.40 1.80
200 /[^a-z0-9]+/gi 476,177.80 2.01 261,751.60 1.96
200 /[^a-zA-Z0-9]+/g 486,423.00 0.80 258,774.20 2.15
সত্য জানা যাবে, উভয় ব্রাউজারে রেইগেক্স (বিচ্যুতি বিবেচনায় নেওয়া) প্রায় পৃথক পৃথক ছিল, তবে আমি মনে করি এটি যদি আরও বেশি বার চালায় তবে ফলাফলগুলি আরও স্পষ্ট হয়ে উঠবে (তবে খুব বেশি নয়)।
1 টি চরিত্রের জন্য তাত্ত্বিক স্কেলিং
Chrome Edge
Chars Pattern Ops/Sec Scaled Op/Sec Scaled
------------------------------------------------------------------------
5,000 /[\W_]+/g 19,977.80 99,889,000 10,820.40 54,102,000
5,000 /[^a-z0-9]+/gi 19,901.60 99,508,000 10,902.00 54,510,000
5,000 /[^a-zA-Z0-9]+/g 19,559.40 97,797,000 10,916.80 54,584,000
------------------------------------------------------------------------
1,000 /[\W_]+/g 96,239.00 96,239,000 52,358.80 52,358,800
1,000 /[^a-z0-9]+/gi 97,584.40 97,584,400 52,105.00 52,105,000
1,000 /[^a-zA-Z0-9]+/g 96,965.80 96,965,800 51,864.60 51,864,600
------------------------------------------------------------------------
200 /[\W_]+/g 480,318.60 96,063,720 261,030.40 52,206,080
200 /[^a-z0-9]+/gi 476,177.80 95,235,560 261,751.60 52,350,320
200 /[^a-zA-Z0-9]+/g 486,423.00 97,284,600 258,774.20 51,754,840
আমি এই ফলাফলগুলিতে খুব একটা গ্রহণ করব না কারণ এটি সত্যই কোনও তাত্পর্যপূর্ণ পার্থক্য নয়, আমরা সত্যিই বলতে পারি প্রান্তটি ধীর: ও। অতিরিক্ত যে আমি সুপার উদাস ছিল।
যাইহোক আপনি নিজের জন্য মানদণ্ড চালাতে পারেন।
এখানে জস্পারফ বেঞ্চমার্ক