পারফরম্যান্স - তারিখ.নো () বনাম তারিখ.জেটটাইম ()


113
var timeInMs = Date.now();

এমডিএন প্রতি

বনাম

var timeInMs = new Date(optional).getTime();

প্রতি MDN

সিনট্যাক্স এবং দ্বিতীয় সংস্করণে alচ্ছিকের মাধ্যমে তারিখটি (বর্তমান নয়) সেট করার ক্ষমতা ছাড়াও কি উভয়ের মধ্যে কোনও পার্থক্য রয়েছে?

তারিখ.নো () দ্রুত - jsperf দেখুন


54
যে কারও জন্য যত্নশীল, ডেট.নো () ইন্টারনেট 9 এক্সপ্লোরার সংস্করণগুলিতে আইই 9 এর আগে কাজ করে না। আমি নিজেই
পাত্তা

8
এটি মূল্যবান কিসের জন্য, আপনি ডেট.নো ()) আইই <9 তেও কাজ করার জন্য বিকাশকারী.মোজিলা.আর.ইন- ইউএস / ডকস / জাভা স্ক্রিপ্ট / রেফারেন্স / এ উল্লিখিত সামঞ্জস্যতা শিমটি যুক্ত করতে পারেন।
jrajav

উত্তর:


105

এই জিনিসগুলি একই ( শব্দার্থকভাবে সম্পাদনা করুন ; এর সাথে পারফরম্যান্স কিছুটা ভাল .now()):

var t1 = Date.now();
var t2 = new Date().getTime();

তবে ইতিমধ্যে তৈরি হওয়া যে কোনও Dateউদাহরণের থেকে সময় নির্ধারণের সময় (বা এটি নির্ধারিত সময় / তারিখ যাই হোক না কেন) হিমায়িত হয়। এটি হল, যদি আপনি এটি করেন:

var now = new Date();

এবং তারপরে কিছুক্ষণ অপেক্ষা করুন, তার পরের কলটি now.getTime()ভেরিয়েবলটি সেট করার সময়টি বলবে।


আপনি কি মনে করেন যে প্রোগ্রামটির সূচনাতে একটি তারিখ অবজেক্ট তৈরি করা এবং তারপরে কেবল সেই তারিখটি অবজেক্ট ( dateObj.setTime(Date.now())) আপডেট করুন বা প্রতিবার যখন অ্যাসিঙ্ক্রোনাস Dateপদ্ধতিতে অ্যাক্সেস করার প্রয়োজন হবে তখনই আপনি নতুন তারিখের অবজেক্ট তৈরি করবেন dateObj.getMinutes()?
ডাবলআর্ট

3
@ টাউরাস আধুনিক জাভাস্ক্রিপ্ট রানটাইমগুলি অবজেক্ট তৈরি এবং আবর্জনা সংগ্রহের ক্ষেত্রে অত্যন্ত ভাল। আপনি যদি কোনও ধরণের রিয়েল-টাইম গেম কার্নেলের উপর কাজ না করেন তবে এ সম্পর্কে উদ্বিগ্ন হওয়ার কোনও কারণ নেই। কোডটি লিখুন যা দেখতে দুর্দান্ত এবং ভঙ্গুর নয়।
পয়েন্টি

1
ধন্যবাদ বলার অপেক্ষা রাখে না তবে ধন্যবাদ (আমি আশা করি আমি এটি একাধিকবার করিনি)
ডাবলআর্ট

57

এগুলি কার্যকরভাবে সমতুল্য, তবে আপনার ব্যবহার করা উচিত Date.now()। এটি পরিষ্কার এবং প্রায় দ্বিগুণ দ্রুত।

সম্পাদনা: উত্স: http://jsperf.com/date-now-vs-new-date


1
এটি কি কারণ Date(optional).getTime();বর্তমান সময় পাওয়ার আগে একটি নতুন তারিখ অবজেক্ট পেতে স্থান বরাদ্দ করতে হয়েছিল?
চার্লি জি

সম্ভবত হ্যাঁ. আমি প্রত্যাশা করব যে তারিখের নির্মাতা যে বস্তুর আসল বরাদ্দের চেয়ে বরং যা করছেন তার সাথে এটির আরও অনেক কিছু রয়েছে।
jrajav

হ্যাঁ, আমি তাড়াতাড়ি যোগ করেছি - আমার অর্থ বরাদ্দ এবং একটি বস্তু তৈরির পাশাপাশি যা কিছু ঘটেছিল।
চার্লি জি

4

আপনি যখন করবেন (new Date()).getTime()একটি নতুন তারিখ অবজেক্ট তৈরি করছেন। আপনি যদি বারবার এটি করেন তবে এটি তারিখের চেয়ে প্রায় 2x ধীর হবে now

একই নীতি জন্য আবেদন করতে হবে Array.prototype.slice.call(arguments, 0)বনাম[].slice.call(arguments, 0)


3

হ্যা ঐটা সঠিক; বর্তমান সময় ব্যবহার করার সময় তারা কার্যকরভাবে সমতুল্য।


2

কখনও কখনও পুনরায় ইনস্ট্যান্ট না করে তারিখের পদ্ধতিগুলিতে অ্যাক্সেস পাওয়ার জন্য অনেকগুলি মিলি সেকেন্ডের চেয়ে ডেট অবজেক্ট ফর্ম্যাটে কিছু সময় ট্র্যাকিং ভেরিয়েবল রাখা ভাল। সেক্ষেত্রে, ডেট.নো () এখনও নতুন তারিখ () বা এর মতো জিতেছে, যদিও আমার ক্রোমে প্রায় 20% এবং আইইতে খুব অল্প পরিমাণে।

আমার JSPERF চালু করুন

timeStamp2.setTime(Date.now()); // set to current;

বনাম

timeStamp1 = new Date(); // set to current;

http://jsperf.com/new-date-vs-settime

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.