আপনি কীভাবে জাভাস্ক্রিপ্ট কোডটি সম্পাদন করেন?


337

সিপিইউ সাইকেল, মেমোরি ইউজ, এক্সিকিউশন সময় ইত্যাদি?

যুক্ত: জাভাস্ক্রিপ্টে পরীক্ষার পারফরম্যান্সের কি পরিমাণগত উপায় আছে যা কেবল কোডটি কীভাবে চালায় তা উপলব্ধি ছাড়াও?


আপনি ফায়ারফক্সের জন্য ওয়াইস্লো প্লাগইনটি দেখতে পছন্দ করতে পারেন ।
রব ওয়েলস

7
এটি কেবল আপনাকে বলতে যাচ্ছে যে এটি লোড হতে কত সময় নেয়। আমি মনে করি প্রশ্নটি চলমান অবস্থায় পারফরম্যান্সের সাথে আরও বেশি উদ্বেগযুক্ত ছিল।
স্যাম হাসলার

আপনি যদি সম্পাদনের জন্য আপনার কোডটি সর্বাধিক সাধারণ উপায়ে করতে চান (এবং সুনির্দিষ্টভাবে যেহেতু আপনি নির্দিষ্ট ফাংশনে সাইন ইন করতে পারেন)। এই পোস্টটিতে টাইমার ব্যবহারের একটি দুর্দান্ত উদাহরণ রয়েছে (তবে আপনার যদি সুযোগ হয় তবে আপনার সত্যিকারের পারফরম্যান্সের দিকে নজর দেওয়া উচিত): albertech.blogspot.com/2015/07/…
জার

1
আপনার ব্রাউজারে দ্রুত এবং সহজ পরীক্ষার জন্য আপনি jsben.ch
এসপসনেটস্কেপ

উত্তর:


325

প্রোফাইলাররা অবশ্যই নম্বর পাওয়ার একটি ভাল উপায়, তবে আমার অভিজ্ঞতায় অনুভূত কর্মক্ষমতা যা ব্যবহারকারী / ক্লায়েন্টের জন্য গুরুত্বপূর্ণ। উদাহরণস্বরূপ, আমাদের কাছে এক্সট অ্যাকর্ডিয়ান সহ একটি প্রকল্প ছিল যা কিছু ডেটা এবং তারপরে কয়েকটি নেস্টেড এক্সট গ্রিডগুলি দেখানোর জন্য প্রসারিত হয়েছিল। সমস্ত কিছুই আসলে খুব দ্রুত রেন্ডারিং করছিল, কোনও একক ক্রিয়াকলাপ দীর্ঘ সময় নেয় নি, একসাথে কেবল প্রচুর তথ্য রেন্ডার করা হয়েছিল, সুতরাং এটি ব্যবহারকারীকে ধীর মনে করেছে।

আমরা এটি 'স্থির' করেছি, একটি দ্রুত উপাদানগুলিতে স্যুইচ করে বা কোনও পদ্ধতি অপ্টিমাইজ করে না, তবে প্রথমে ডেটা রেন্ডার করে, তারপরে একটি সেটটাইমআউট দিয়ে গ্রিডগুলি রেন্ডার করে। সুতরাং, তথ্যটি প্রথমে উপস্থিত হয়েছিল, তারপরে গ্রিডগুলি তার পরে দ্বিতীয় স্থানে চলে যাবে। সামগ্রিকভাবে, এটি সেভাবে করতে কিছুটা বেশি প্রসেসিং সময় লাগল, তবে ব্যবহারকারীর কাছে, অনুভূত কর্মক্ষমতাটি উন্নত হয়েছিল।


আজকাল, ক্রোম প্রোফাইলার এবং অন্যান্য সরঞ্জাম, সর্বজনীন ব্যবহারের জন্য উপলব্ধ এবং সহজ মতোই থাকে console.time(), console.profile()এবং performance.now()। ক্রোম আপনাকে একটি টাইমলাইন ভিউ দেয় যা আপনাকে দেখায় যে আপনার ফ্রেম রেটটি কীভাবে নিহত করছে, যেখানে ব্যবহারকারী সম্ভবত অপেক্ষা করছেন ইত্যাদি can

এই সমস্ত সরঞ্জামের জন্য ডকুমেন্টেশন সন্ধান করা সত্যিই সহজ, এর জন্য আপনার কোনও এসও উত্তর দরকার নেই। Years বছর পরে, আমি এখনও আমার মূল উত্তরের পরামর্শটি পুনরাবৃত্তি করব এবং উল্লেখ করব যে আপনার পক্ষে চিরতরে ধীর কোড চালানো যেতে পারে যেখানে কোনও ব্যবহারকারী তা খেয়াল করে না, এবং বেশ দ্রুত কোডটি যেখানে তারা চালায়, এবং তারা তাদের সম্পর্কে অভিযোগ করবে বেশ দ্রুত কোড যথেষ্ট দ্রুত হচ্ছে না। অথবা আপনার সার্ভার এপিআইতে আপনার অনুরোধটি 220 মিমি নিয়েছে বা অন্য কিছু। মুল বক্তব্যটি রয়ে গেছে যে আপনি যদি কোনও প্রোফাইলার বাইরে নিয়ে যান এবং কাজের জন্য অনুসন্ধান করতে যান তবে আপনি এটি খুঁজে পাবেন তবে এটি আপনার ব্যবহারকারীদের প্রয়োজনীয় কাজ নয়।


3
সুপরিচিত ভাল পারফরম্যান্ট অ্যালগরিদমগুলি স্থান পাওয়ার পরে এটি একটি সূক্ষ্ম সুরের পদক্ষেপ।
রাফায়েল জাভিয়ের

1
এটি সত্যিই একটি ভাল উত্তর, এটি বেশিরভাগ পরিস্থিতিতে একটি বাস্তব পদ্ধতি গ্রহণ করে যা প্রশ্নটি বর্ণনা করে। যাইহোক, এটি প্রশ্নের উত্তর দেয় না , যা জিজ্ঞাসা করছে যে এটি কেবল ব্যবহারকারীর উপলব্ধি ব্যতীত অন্য কোনও উপায় পরিমাপ করার উপায় আছে কিনা asking পুরো ডাউনটাইম, যেমন বোতামগুলি হিমায়িত করা হয় তখনও প্রমডকের উত্তরের পদ্ধতিগুলি এবং এর সাথে যুক্ত মন্তব্যগুলি ব্যবহার করে মাপা যায়।
রোবোটিক রেনেসাঁ

202

আমি সম্মত হই যে অনুধাবন করা পারফরম্যান্স সত্যিই সমস্ত বিষয়। তবে কখনও কখনও আমি কেবল কোনও কিছু করার পদ্ধতিটি দ্রুততর তা খুঁজে বের করতে চাই। কখনও কখনও পার্থক্য বিশাল এবং জ্ঞাত।

আপনি কেবল জাভাস্ক্রিপ্ট টাইমার ব্যবহার করতে পারেন। তবে আমি সাধারণত নেটিভ ক্রোম (বর্তমানে ফায়ারফক্স এবং সাফারিতেও) ডিভুল টুলগুলি console.time()এবংconsole.timeEnd()

আমি এটি কীভাবে ব্যবহার করি তার উদাহরণ:

var iterations = 1000000;
console.time('Function #1');
for(var i = 0; i < iterations; i++ ){
    functionOne();
};
console.timeEnd('Function #1')

console.time('Function #2');
for(var i = 0; i < iterations; i++ ){
    functionTwo();
};
console.timeEnd('Function #2')

ফলাফলগুলি এর মতো দেখায়

আপডেট (4/4/2016):

ক্রোম ক্যানারিটি সম্প্রতি ডিভাইসগুলির উত্স ট্যাবটির জন্য লাইন স্তরের প্রোফাইল যুক্ত করেছে যা আসুন আপনাকে দেখতে দিন যে প্রতিটি লাইনটি কার্যকর করতে কতক্ষণ সময় নিয়েছিল! এখানে চিত্র বর্ণনা লিখুন


হ্যাঁ, এইগুলির সাথে আকর্ষণীয়গুলির মধ্যে একটি হ'ল এটি কার্যকর করা দ্রুত এন সহজ। আমি ভাবছি, জাভা স্ক্রিপ্ট সম্পাদন থেকে কিছুটা পারফরম্যান্সের জন্য লগিংটি কি গ্রহণ করবে? ধরা যাক যে আমাদের একটি গেমের লুপ রয়েছে এবং এটি একাধিক লগ সারি আউটপুট করে। উদাহরণস্বরূপ একবারে প্রতি সেকেন্ডে 5 মিনিটের জন্য, এটি 300 সারি। কেউ জানেন?
কে কিলিয়ান লিন্ডবার্গ

এটি কি এখনও চালু আছে? ক্রোমে আপেরিং করা হচ্ছে না।
উদাহরণস্বরূপ পরিসংখ্যানগুলি শেখা

2
হ্যাঁ এখনও আমার পক্ষে কাজ করে। বিকাশকারী.চ্রোম
জোসে ব্রাউন

@ কে.কিলিয়ানলাইন্ডবার্গ লগিং সর্বদা পারফরম্যান্স থেকে সময় নেবে, যেমন কোনও কোড হবে তবে ক) এটি আপনার পরীক্ষাগুলিতে সামঞ্জস্য থাকবে এবং খ) আপনি লাইভ কোডে কনসোল লগিং হওয়া উচিত নয়। আমার মেশিনে পরীক্ষার পরে, সময় লগইন করা কেবলমাত্র একটি এমএস এর ভগ্নাংশ, তবে এটি আপনি যত বেশি করেন তা যুক্ত করবে।
Polyducks

92

আমরা সর্বদা সাধারণ তারিখের অবজেক্ট দ্বারা যে কোনও ফাংশন দ্বারা নেওয়া সময় পরিমাপ করতে পারি ।

var start = +new Date();  // log start timestamp
function1();
var end =  +new Date();  // log end timestamp
var diff = end - start;

10
দ্রষ্টব্য যে এই সমাধানটি মিলি সেকেন্ডে
ভিন্নতা

16
তারিখ () ব্যবহার নিরুত্সাহিত হওয়ায় মিলিসেকেন্ডে সময় সিস্টেমের কারণগুলির উপর নির্ভর করে পরিবর্তিত হতে পারে। পরিবর্তে কনসোল.টাইম () এবং কনসোল.টাইমএন্ড () ব্যবহার করুন। আরও বিশদ জানতে JQuery প্রেমিকের উত্তর দেখুন।
এমবোকিল

44
আরও ভাল, ব্যবহার করুনperformance.now()
এডান

1
পারফরম্যান্স ব্যবহার করার আগে (এখন) দয়া করে ব্রাউজারের সামঞ্জস্যতা পরীক্ষা করুন। বিকাশকারী.মোজিলা.আর.ইন-
ইউএস

তারিখটি যে সময় পার করেছে তা সত্যই প্রতিনিধি নয়। এটিতে এই নিবন্ধটি দেখুন: sitepoint.com/measuring- জাভাস্ক্রিপ্ট- ফাংশন- দক্ষতা । পারফরম্যান্স.নো () একটি আরও সঠিক সময় স্ট্যাম্প।
মিলিশনেয়ার

61

Jscreen চেষ্টা করুন । কোডের স্নিপেটগুলি তুলনামূলকভাবে তুলনা করার জন্য এটি একটি অনলাইন জাভাস্ক্রিপ্ট পারফরম্যান্স সরঞ্জাম। আমি সব সময় এটি ব্যবহার।


1
যেহেতু এই মুহুর্তে জেএসফিউ ডাউন রয়েছে , এর পরিবর্তে বেঞ্চমার্কগুলি ব্যবহার করা সহজ
মুচাহো

আমি এটিরও প্রস্তাব দিই যেহেতু এটি একটি অপ্স / সেকেন্ড পরিমাপ দেয় (এটি আপনার কোডটি একাধিকবার চালায়)
রিচার্ড

Jscreen জন্য +9001 (এটি নয় হাজারেরও বেশি;)। পাইথন কোডের জন্য %timeitএকটি ipythonREPL শেল এ আমি নিয়মিত এটি ব্যবহার করি ।
amcgregor

37

বেশিরভাগ ব্রাউজার এখন উচ্চ রেজোলিউশনের সময় বাস্তবায়ন করছে performance.now()new Date()পারফরম্যান্স পরীক্ষার জন্য এটি সর্বোত্তম কারণ এটি সিস্টেম ঘড়ি থেকে স্বাধীনভাবে পরিচালনা করে।

ব্যবহার

var start = performance.now();

// code being timed...

var duration = performance.now() - start;

তথ্যসূত্র


2
আরও ভাল হবে ব্যবহারকারীর সময়কাল এপিআই ব্যবহার করা , যা এটি তৈরি করে performance.now()
ক্রিস

30

অ্যাড-হক জাভাস্ক্রিপ্ট বেঞ্চমার্ক পরীক্ষা তৈরির জন্য জেএসলিটমাস একটি হালকা ওজনের সরঞ্জাম

এর মধ্যে function expressionএবং এর মধ্যে পারফরম্যান্স পরীক্ষা করতে দিন function constructor:

<script src="JSLitmus.js"></script>
<script>

JSLitmus.test("new Function ... ", function() { 
    return new Function("for(var i=0; i<100; i++) {}"); 
});

JSLitmus.test("function() ...", function() { 
       return (function() { for(var i=0; i<100; i++) {}  });
});

</script>

আমি উপরে যা করেছি তা হ'ল একটি function expressionএবং function constructorএকই ক্রিয়াকলাপটি সম্পাদন করা। নিম্নরূপ ফলাফল:

ফায়ারফক্স পারফরম্যান্স ফলাফল

ফায়ারফক্স পারফরম্যান্স ফলাফল

IE পারফরম্যান্স ফলাফল

IE পারফরম্যান্স ফলাফল


লিঙ্কযুক্ত জেএসলিটমাস পৃষ্ঠায় ভাঙা ডাউনলোড লিঙ্ক রয়েছে। আমি জেএসলিটমাস (ব্রাউজারগুলির জন্য) এবং জ্লিস্টমাস ( নোডজেএস , ছোট হাতের জন্য!) পেয়েছি
রব ডব্লিউ

16

কিছু লোক নির্দিষ্ট প্লাগইনগুলি এবং / অথবা ব্রাউজারগুলির পরামর্শ দিচ্ছেন। আমি তা করব না কারণ তারা কেবলমাত্র সেই এক প্ল্যাটফর্মের জন্য সত্যই কার্যকর; ফায়ারফক্সে চালানো একটি পরীক্ষা আইই 7 তে সঠিকভাবে অনুবাদ করবে না। 99.999999% সাইটের বিবেচনা করে একাধিক ব্রাউজার তাদের দেখতে পেয়েছে, আপনাকে সমস্ত জনপ্রিয় প্ল্যাটফর্মগুলিতে কর্মক্ষমতা পরীক্ষা করতে হবে।

আমার পরামর্শ হ'ল এটি জেএসে রাখুন। কার্যকর এবং কার্যকর করার সময় আপনার সমস্ত জেএস পরীক্ষার সাথে একটি বেঞ্চমার্কিং পৃষ্ঠা তৈরি করুন। এমনকি এটি পুরোপুরি স্বয়ংক্রিয় রাখতে আপনার কাছে এজেএক্স-ফলাফলগুলি পুনরায় পোস্ট করতে পারেন।

তারপরে কেবল ধুয়ে নিন এবং বিভিন্ন প্ল্যাটফর্মের উপর পুনরাবৃত্তি করুন।


5
এটি সত্য, তবে কোনও কোডিং সমস্যা থাকলে ব্রাউজার নির্দিষ্ট ইস্যুতে কিছুই করার থাকে না তবে প্রোফাইলাররা ভাল।
জন বোকার

1
নিশ্চিত! হ্যাঁ তারা সাধারণ "ব্যাড কোডিং" সমস্যাগুলি ধরবে এবং নির্দিষ্ট সমস্যাগুলি প্রকৃত ডিবাগিংয়ের জন্য দুর্দান্ত তবে সাধারণ ব্যবহারের ক্ষেত্রে পরীক্ষার জন্য আপনি সমস্ত প্ল্যাটফর্মগুলিতে চালিত এমন কোনও কিছু থেকে উপকৃত হবেন।
অলি

2
নোটটিতে এটি +1 করুন, তবে বাধা খুঁজে পাওয়ার জন্য ফায়ারব্যাগের মতো প্রোফাইলার রাখা এখনও প্রয়োজনীয় নয়।
পেক্কা 21

1
" 99.999999% সাইট বিবেচনা করে ... " আমার মনে হয় আপনি এটি তৈরি করেছেন…: - /
রবজি

@ রবজি আমি সম্ভবত এক দশমিক দুটি স্থান বাড়িয়ে তুলছি, তবে আপনার বিকাশ প্ল্যাটফর্ম সম্ভবত আপনার স্থাপনার প্ল্যাটফর্মের অনুরূপ হতে পারে না idea
অলি

11

আমার একটি ছোট সরঞ্জাম রয়েছে যেখানে আমি ব্রাউজারে দ্রুত ছোট টেস্ট-কেস চালাতে পারি এবং সাথে সাথে ফলাফলগুলি পেতে পারি:

জাভাস্ক্রিপ্ট গতি পরীক্ষা

আপনি কোড দিয়ে খেলতে পারবেন এবং পরীক্ষিত ব্রাউজারে কোন কৌশলটি আরও ভাল তা জানতে পারবেন।


ধন্যবাদ, আমি যা খুঁজছিলাম ঠিক এটিই।
জোসেফ শেডি


9

এখানে একটি সাধারণ ফাংশন যা কার্যক্রমে পাসের সম্পাদনের সময় প্রদর্শন করে:

var perf = function(testName, fn) {
    var startTime = new Date().getTime();
    fn();
    var endTime = new Date().getTime();
    console.log(testName + ": " + (endTime - startTime) + "ms");
}


4

দ্রুত উত্তর

JQuery এর (শোঁ শব্দ উপর আরো নির্দিষ্টভাবে) তারিখে, আমরা ব্যবহার এই (চেকআউট মাস্টার এবং খোলা গতি আপনার ব্রাউজারে / index.html), যা পালাক্রমে ব্যবহারের benchmark.js । এটি লাইব্রেরি পরীক্ষার জন্য ব্যবহার করা হয়।

দীর্ঘ উত্তর

পাঠক বেঞ্চমার্ক, কাজের চাপ এবং profilers মধ্যে পার্থক্য জানেন না হলে, প্রথম ভিত্তি পরীক্ষার কয়েকটি কার্যকারিতা পড়া spec.org এর "রিডমি 1 ম" বিভাগে । এটি সিস্টেম পরীক্ষার জন্য, তবে এই ভিত্তিগুলি বোঝা জেএস পারফেক্ট টেস্টিংয়েও সহায়তা করবে। কিছু হাইলাইট:

মানদণ্ড কী?

একটি মানদণ্ড হ'ল "পরিমাপ বা মূল্যায়নের একটি মান" (ওয়েবস্টার এর দ্বিতীয় অভিধান)। একটি কম্পিউটার বেঞ্চমার্ক সাধারণত একটি কম্পিউটার প্রোগ্রাম যা কার্যকরভাবে সংজ্ঞায়িত সংস্থার কাজ করে - একটি কাজের চাপ - এবং পরীক্ষার কম্পিউটারটি কীভাবে সম্পাদিত হয়েছিল তা বর্ণনা করে কোনও ফলাফলের একটি ফর্ম - একটি মেট্রিক ফিরিয়ে দেয়। কম্পিউটার বেঞ্চমার্ক মেট্রিকগুলি সাধারণত গতি পরিমাপ করে: কাজের চাপ কত দ্রুত শেষ হয়েছিল; বা থ্রুপুট: ইউনিট সময়কালে কতগুলি কাজের চাপ ইউনিট শেষ হয়েছিল। একাধিক কম্পিউটারে একই কম্পিউটার বেঞ্চমার্ক চালানো একটি তুলনা করার অনুমতি দেয়।

আমার নিজের আবেদনটি কি বেঞ্চমার্ক করা উচিত?

আদর্শভাবে, সিস্টেমগুলির জন্য সেরা তুলনা পরীক্ষাটি আপনার নিজের কাজের চাপের সাথে আপনার নিজের প্রয়োগ। দুর্ভাগ্যক্রমে, আপনার নিজের কাজের চাপের সাথে নিজের অ্যাপ্লিকেশনটি ব্যবহার করে বিভিন্ন সিস্টেমের জন্য নির্ভরযোগ্য, পুনরাবৃত্তিযোগ্য এবং তুলনামূলক পরিমাপের বিস্তৃত ভিত্তি পাওয়া প্রায়শই অবৈধ। সমস্যাগুলির মধ্যে একটি ভাল পরীক্ষার কেস, গোপনীয়তার উদ্বেগ, তুলনামূলক শর্ত, সময়, অর্থ এবং অন্যান্য সীমাবদ্ধতা নিশ্চিত করতে অসুবিধা অন্তর্ভুক্ত থাকতে পারে।

যদি আমার নিজের আবেদন না হয় তবে কি?

আপনি একটি রেফারেন্স পয়েন্ট হিসাবে প্রমিত মানদণ্ড ব্যবহার বিবেচনা করতে পারেন। আদর্শভাবে, একটি মানসম্পন্ন বেঞ্চমার্কটি বহনযোগ্য হবে এবং আপনার আগ্রহী প্ল্যাটফর্মগুলিতে ইতিমধ্যে এটি চালিত হতে পারে However তবে ফলাফলগুলি বিবেচনা করার আগে আপনাকে নিশ্চিত হওয়া উচিত যে আপনি আপনার অ্যাপ্লিকেশন / কম্পিউটিংয়ের প্রয়োজনীয়তার মধ্যে কী সম্পর্ক স্থাপন করেছেন তা এবং মাপদণ্ডটি মাপছে। আপনি যে ধরণের অ্যাপ্লিকেশন চালাচ্ছেন সেই মানদণ্ডগুলি কি সমান? কাজের চাপের কি একই বৈশিষ্ট্য রয়েছে? এই প্রশ্নের আপনার উত্তরগুলির ভিত্তিতে, আপনি দেখতে শুরু করতে পারেন কীভাবে বেঞ্চমার্ক আপনার বাস্তবতা অনুমান করতে পারে।

দ্রষ্টব্য: একটি মানযুক্ত মানদণ্ড রেফারেন্স পয়েন্ট হিসাবে পরিবেশন করতে পারে। তবুও, আপনি যখন বিক্রেতা বা পণ্য নির্বাচন করছেন, তখন SPEC দাবী করে না যে কোনও মানসম্মত বেঞ্চমার্ক আপনার নিজস্ব প্রকৃত প্রয়োগকে বেঞ্চমার্কিং প্রতিস্থাপন করতে পারে।

পারফরম্যান্স টেস্টিং জেএস

আদর্শভাবে, সেরা পারফ টেস্টটি আপনার নিজের কাজের চাপটি যা আপনার পরীক্ষা করতে হবে তা পরিবর্তন করে নিজের অ্যাপ্লিকেশনটি ব্যবহার করা হবে: বিভিন্ন গ্রন্থাগার, মেশিন ইত্যাদি etc.

যদি এটি সম্ভব না হয় (এবং সাধারণত এটি হয় না)। প্রথম গুরুত্বপূর্ণ পদক্ষেপ: আপনার কাজের বোঝা নির্ধারণ করুন। এটি আপনার অ্যাপ্লিকেশনটির কাজের চাপ প্রতিফলিত করা উচিত। ইন এই আলাপ , Vyacheslav Egorov শিটি চাপ আপনি এড়িয়ে চলা উচিত কথা বলেছেন।

তারপরে, আপনি মেট্রিক সংগ্রহ করতে সহায়তা করার জন্য, সাধারণত গতি বা থ্রুপুটকে সহায়তা করতে আপনি বেঞ্চমার্ক.জেসের মতো সরঞ্জাম ব্যবহার করতে পারেন। সিজলে, আমরা কীভাবে সংশোধন বা পরিবর্তনগুলি লাইব্রেরির সিস্টেমিক কার্য সম্পাদনকে প্রভাবিত করে তা তুলনা করতে আগ্রহী।

যদি কিছু সত্যিই খারাপ সম্পাদন করে তবে আপনার পরবর্তী পদক্ষেপটি বাধা খুঁজে বের করা।

আমি কীভাবে বাধা খুঁজে পাব? Profilers

প্রোফাইল জাভাস্ক্রিপ্ট কার্যকর করার সেরা উপায় কি?


3

আমি কার্যকরকরণের সময়টিকে সেরা পরিমাপ হিসাবে খুঁজে পাই।


কিসের বিরোধিতা? আমি নিশ্চিত নই যে আমি বুঝেছি.
পেক্কা 21

অরিগনাল পোস্টার প্রশ্নের বিপরীতে: "সিপিইউ সাইকেল, মেমোরি ইউজ, এক্সিকিউশন সময় ইত্যাদি?"
স্নিকারে


2

আমি সাধারণত জাভাস্ক্রিপ্টের পারফরম্যান্স পরীক্ষা করি, কতক্ষণ স্ক্রিপ্ট চলে। জাভাস্ক্রিপ্ট কোড পারফরম্যান্স পরীক্ষার জন্য jQuery প্রেমিকা একটি ভাল নিবন্ধ লিঙ্ক দিয়েছে , তবে নিবন্ধটি কেবলমাত্র আপনার জাভাস্ক্রিপ্ট কোডটি কতক্ষণ চালায় তা পরীক্ষা করে দেখায়। আমি " বিশাল ডেটা সেটগুলির সাথে কাজ করার সময় আপনার jQuery কোড উন্নত করার 5 টিপস" নামক নিবন্ধটি পড়ারও পরামর্শ দেব ।


2

সময়ের পারফরম্যান্সের জন্য এখানে পুনরায় ব্যবহারযোগ্য শ্রেণি রয়েছে। উদাহরণ কোড অন্তর্ভুক্ত:

/*
     Help track time lapse - tells you the time difference between each "check()" and since the "start()"

 */
var TimeCapture = function () {
    var start = new Date().getTime();
    var last = start;
    var now = start;
    this.start = function () {
        start = new Date().getTime();
    };
    this.check = function (message) {
        now = (new Date().getTime());
        console.log(message, 'START:', now - start, 'LAST:', now - last);
        last = now;
    };
};

//Example:
var time = new TimeCapture();
//begin tracking time
time.start();
//...do stuff
time.check('say something here')//look at your console for output
//..do more stuff
time.check('say something else')//look at your console for output
//..do more stuff
time.check('say something else one more time')//look at your console for output

1

ইউএক্স প্রোফাইলার ব্যবহারকারীর দৃষ্টিকোণ থেকে এই সমস্যাটির কাছে যান। এটি কিছু ব্রাউজার ইভেন্ট, নেটওয়ার্ক ক্রিয়াকলাপ ইত্যাদি কিছু ব্যবহারকারীর ক্রিয়া (ক্লিক) এর কারণে সংঘবদ্ধ করে এবং লেটেন্সি, টাইমআউট ইত্যাদির মতো সমস্ত দিক বিবেচনা করে consideration


1

আমি অনুরূপ কিছু খুঁজছিলাম কিন্তু এটি পাওয়া গেল।

https://jsbench.me/

এটি একপাশে তুলনা করতে দেয় এবং আপনি ফলাফলগুলি ভাগ করে নিতে পারেন share


0

সুবর্ণ নিয়মটি কোনও পরিস্থিতিতে আপনার ব্যবহারকারীদের ব্রাউজারটিকে লক করা উচিত নয়। এর পরে, আমি সাধারণত মৃত্যুদন্ডের সময়টি দেখি, তার পরে মেমরি ব্যবহার হয় না (যদি আপনি ক্রেজি কিছু না করেন, তবে এটি উচ্চতর অগ্রাধিকার হতে পারে)।


0

পারফরম্যান্স টেস্টিং দেরিতে হিসাবে একটি গুঞ্জনবর্ণের কিছুতে পরিণত হয়েছিল তবে এটি বলার অপেক্ষা রাখে না যে পারফরম্যান্স টেস্ট কিউএ বা পণ্য পাঠানোর পরেও গুরুত্বপূর্ণ প্রক্রিয়া নয়। এবং আমি অ্যাপটি বিকাশ করার সময় আমি অনেকগুলি বিভিন্ন সরঞ্জাম ব্যবহার করি, এর মধ্যে কিছু ক্রোম প্রোফাইলারের মতো উপরে উল্লিখিত আমি সাধারণত একটি সাএএস বা এমন কিছু ওপেনসোর্স দেখি যা আমি যেতে পারি এবং এ সম্পর্কে ভুলে যেতে পারি যতক্ষণ না আমি এই সতর্কতাটি না পেয়ে বলি যে কিছু পেটে গেছে went ।

প্রচুর দুর্দান্ত সরঞ্জাম রয়েছে যা আপনাকে কয়েকটি বুনিয়াদি সতর্কতা সেট আপ করার জন্য হুপের মধ্য দিয়ে ঝাঁপিয়ে না পড়ে পারফরম্যান্সে নজর রাখতে সহায়তা করবে। এখানে আমি কয়েকটি নিজের জন্য পরীক্ষা করা মূল্যবান বলে মনে করি।

  1. Sematext.com
  2. Datadog.com
  3. Uptime.com
  4. Smartbear.com
  5. Solarwinds.com

একটি পরিষ্কার ছবি চেষ্টা ও আঁকার জন্য, কীভাবে প্রতিক্রিয়ার অ্যাপ্লিকেশনটির জন্য পর্যবেক্ষণ সেট আপ করা যায় সে সম্পর্কে এখানে একটি ছোট টিউটোরিয়াল।


-1

নির্দিষ্ট ক্রিয়াকলাপের জন্য পারফরম্যান্সের তথ্য সংগ্রহ করার এটি একটি ভাল উপায়।

start = new Date().getTime(); 
for (var n = 0; n < maxCount; n++) {
/* perform the operation to be measured *//
}
elapsed = new Date().getTime() - start;
assert(true,"Measured time: " + elapsed);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.