সিস্টেম.কন্ট্রেন্টটাইমমিলিস বনাম সিস্টেম.নানোটাইম


379

যথার্থতা বনাম স্পষ্টতা

আমি যা জানতে চাই তা হ'ল আমার গেমটিতে আমার অবজেক্টের অবস্থান আপডেট করার সময় আমার কি সিস্টেম.কন্ট্রেন্টটাইমমিলিস () বা সিস্টেম.নানোটাইম () ব্যবহার করা উচিত ? তাদের চলাচলে পরিবর্তনটি গত কল করার পর থেকে অতিবাহিত সময়ের সাথে সরাসরি সমানুপাতিক এবং আমি যথাসম্ভব যথাযথ হতে চাই।

আমি পড়েছি যে বিভিন্ন অপারেটিং সিস্টেমের মধ্যে কিছু গুরুতর টাইম-রেজোলিউশন সমস্যা রয়েছে (যথা ম্যাক / লিনাক্সের প্রায় 1 এমএস রেজোলিউশন রয়েছে যখন উইন্ডোজটির 50 মিমি রেজোলিউশন আছে ??) আমি প্রাথমিকভাবে আমার অ্যাপ্লিকেশনগুলি উইন্ডোতে চালিত করছি এবং 50 মিমি রেজোলিউশনটি বেশ ভুল বলে মনে হচ্ছে।

আমি তালিকাভুক্ত দুটি চেয়ে ভাল বিকল্প আছে?

কোন পরামর্শ / মন্তব্য?


81
nanoTimeবর্তমানের টাইমমিলিসের তুলনায় উল্লেখযোগ্যভাবে আরও সঠিক তবে এটি তুলনামূলকভাবে ব্যয়বহুল কল। currentTimeMillis()কয়েকটি (5-6) সিপিইউ ঘড়ি চালায়, ন্যানোটাইম অন্তর্নিহিত আর্কিটেকচারের উপর নির্ভর করে এবং এটি 100+ সিপিইউ ক্লক হতে পারে।
বেটসেস

10
আপনি কি বুঝতে পেরেছেন যে উইন্ডোজ সাধারণত 1000ms / 64 এর টাইমসাইল গ্রানুলারিটি আছে, তাই না? যা 15.625 মিমি বা 15625000 ননো সেকেন্ড!

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

9
উইন্ডোজটির 1000 মিমি / 64 এর একটি ডিফল্ট টাইমলাইস গ্রানুলারিটি রয়েছে। আপনি এটি নেটিভ টাইমবেগেনপরিড API এর মাধ্যমে বাড়িয়ে নিতে পারেন। আধুনিক পিসিগুলিতে বেসিক টাইমার ছাড়াও উচ্চ-রেজোলিউশন টাইমার থাকে। উচ্চ-রেজোলিউশন টাইমারগুলি ক্যোরি পারফরম্যান্স কাউন্টার কলের মাধ্যমে অ্যাক্সেসযোগ্য।
রবিন ডেভিস

2
@ গোহান - এই নিবন্ধটি এর অভ্যন্তরীণ কাজগুলি সম্পর্কে বিশদে যায় System.currentTimeMillis(): pzemtsov.github.io/2017/07/23/the-slow-c موجودہ সময়মিলিস এইচটিএমএল
আটটিলা তানয়ি

উত্তর:


320

যদি আপনি কেবল অতিবাহিত সময়ের অত্যন্ত সুনির্দিষ্ট পরিমাপ খুঁজছেন , ব্যবহার করুন System.nanoTime()System.currentTimeMillis()যুগের পর থেকে System.nanoTime()আপনাকে মিলসেকেন্ডে সর্বাধিক সঠিক সময় অতিবাহিত করবে, তবে কিছু স্বেচ্ছাসেবী বিন্দুর তুলনায় আপনাকে ন্যানোসেকেন্ড-সুনির্দিষ্ট সময় দেয়।

জাভা ডকুমেন্টেশন থেকে:

public static long nanoTime()

ন্যানোসেকেন্ডে সর্বাধিক সুনির্দিষ্ট উপলভ্য সিস্টেম টাইমারের বর্তমান মানটি প্রদান করে।

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

উদাহরণস্বরূপ, কিছু কোড কার্যকর করতে কত সময় নেয় তা পরিমাপ করতে:

long startTime = System.nanoTime();    
// ... the code being measured ...    
long estimatedTime = System.nanoTime() - startTime;

আরও দেখুন: জাভাডক সিস্টেম.নানোটাইম () এবং জাভাডোক সিস্টেম। কর্নারটাইমমিলিস () আরও তথ্যের জন্য।


20
আপনি কি নিশ্চিত যে যথার্থতা এবং নির্ভুলতার মধ্যে পার্থক্যটি জানেন? এটি কোনও ন্যানোসেকেন্ডের যথার্থতার সঠিক নয়।
এমএমসিডোল

6
দুঃখিত, আমি সুনির্দিষ্ট বলতে চাইছিলাম আমি এই শব্দটি আলগাভাবে ব্যবহার করছিলাম তবে আমি সম্মত হই যে এটি বিভ্রান্তিকর ছিল (এবং শব্দের একটি অনুপযুক্ত ব্যবহার)
ড্যাঙ্কাওয়াল্লোর

4
@ উদ্যানকাভাল্লারো, তথ্যের জন্য ধন্যবাদ। যদি আপনি কিছু মনে করেন না, ডক্স থেকে একটি উদ্ধৃতি অন্তর্ভুক্ত করার জন্য আমি আপনার উত্তর সম্পাদনা করেছি এবং লিঙ্কগুলি ঠিক করেছি
মিমকোডোল

135
এই উত্তরটি ন্যানোটাইম () চয়ন করার ক্ষেত্রে প্রযুক্তিগতভাবে সঠিক তবে একটি অত্যন্ত গুরুত্বপূর্ণ পয়েন্টে সম্পূর্ণরূপে গ্লোস করে। ন্যানোটাইম (), যেমন ডক বলেছেন, একটি যথার্থ টাইমার। কারেন্টটাইমমিলিস () টিমার নয়, এটি "প্রাচীরের ঘড়ি"। ন্যানোটাইম () সর্বদা ইতিবাচক সময় ব্যয় করে, কারেন্টটাইমমিলিস (যেমন আপনি তারিখটি পরিবর্তন করেন, একটি লিপ সেকেন্ডে আঘাত করেন ইত্যাদি ইত্যাদি) এটি কিছু ধরণের সিস্টেমের জন্য অত্যন্ত গুরুত্বপূর্ণ পার্থক্য।
চরস্তর

11
ব্যবহারকারী পরিবর্তনের সময় এবং এনটিপি সিঙ্ক নিশ্চিত, কিন্তু কেন currentTimeMillisডিএসটি কারণে পরিবর্তিত হবে ? ডিএসটি স্যুইচ পর্বের আগের সেকেন্ডের সংখ্যা পরিবর্তন করে না। এটি "প্রাচীরের ঘড়ি" হতে পারে তবে এটি ইউটিসির উপর ভিত্তি করে। আপনার স্থানীয় সময় জন্য যা অনুবাদ করে তা আপনার সময় অঞ্চল এবং ডিএসটি সেটিংসের উপর ভিত্তি করে আপনাকে নির্ধারণ করতে হবে (বা আপনার জন্য এটি করতে অন্যান্য জাভা ইউটিলিটিগুলি ব্যবহার করুন)।
শ্যাডো ম্যান

100

যেহেতু অন্য কেউ এটি উল্লেখ করেনি ...

System.nanoTime()বিভিন্ন থ্রেডের মধ্যে কলগুলির ফলাফলগুলির তুলনা করা নিরাপদ নয় । এমনকি থ্রেডগুলির ইভেন্টগুলি অনুমানযোগ্য ক্রমে ঘটে গেলেও ন্যানোসেকেন্ডে পার্থক্যটি ইতিবাচক বা নেতিবাচক হতে পারে।

System.currentTimeMillis() থ্রেডের মধ্যে ব্যবহারের জন্য নিরাপদ।


4
উইন্ডোজ যা কেবল এসপি 2 অবধি ধারণ করে: স্ট্যাকওভারফ্লো
পিটার স্মিটজ

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

4
@ জেগুবি: খুব আকর্ষণীয় ... এমন কোনও রেফারেন্স যা সমর্থনের জন্য সিস্টেম.নাওটাইম () বিভিন্ন থ্রেডের মধ্যে কলগুলির ফলাফলের তুলনা করা নিরাপদ নয় ? নিম্নলিখিত লিঙ্কগুলি দেখার মতো: বুগসস.সুন.কম / বুগড্যাটেক্স
ভিউ_বগ.ডো?

15
এখানে বর্ণিত বিবরণটির দিকে তাকিয়ে: ডকস.অরাকল.com / জাভাসে / d / ডকস / এপি / জাভা / অং / … /২ মনে হচ্ছে, ন্যানোটাইম থেকে প্রাপ্ত মানগুলির মধ্যে পার্থক্য যতক্ষণ না ততক্ষণ তুলনা করার জন্য বৈধ হয় জেভিএম -The values returned by this method become meaningful only when the difference between two such values, obtained within the same instance of a Java virtual machine, is computed.
টেক্সডুড

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

58

আরকাদির আপডেট : আমি System.currentTimeMillis()উইন্ডোজ 7 তে ওরাকল জাভা ৮-তে আরও সঠিক আচরণ লক্ষ্য করেছি observed সময়টি 1 মিলিসেকেন্ড যথার্থতার সাথে ফিরে এসেছিল। ওপেনজেডিকে সূত্রের কোডটি পরিবর্তন হয়নি, তাই ভাল আচরণের কারণ কী তা আমি জানি না।


সান এর ডেভিড হোমস কয়েক বছর আগে একটি ব্লগ নিবন্ধ পোস্ট করেছিলেন যার জাভা টাইমিং এপিআইগুলিতে (বিশেষত System.currentTimeMillis()এবং System.nanoTime()) আপনি যখন কখন ব্যবহার করতে চান এবং কীভাবে তারা অভ্যন্তরীণভাবে কাজ করে তা খুব বিশদভাবে দেখেছে।

হটস্পট ভিএম এর অভ্যন্তরে: ঘড়ি, টাইমার এবং সময়সূচী ইভেন্ট - অংশ I - উইন্ডোজ

উইন্ডোতে জাভা টাইম ওয়েট প্যারামিটারগুলির জন্য উইন্ডোতে টাইমার ব্যবহারের একটি খুব আকর্ষণীয় দিকটি হ'ল অন্যান্য এপিআই কলগুলি কী করা হয়েছিল তার উপর নির্ভর করে টাইমারটির রেজোলিউশন পরিবর্তন করতে পারে - সিস্টেম ওয়াইড (কেবলমাত্র নির্দিষ্ট প্রক্রিয়ায় নয়) । তিনি একটি উদাহরণ দেখান যেখানে ব্যবহারের Thread.sleep()ফলে এই রেজোলিউশন পরিবর্তনের কারণ ঘটবে।


1
@ আরকাদিয়ে: আপডেটে বিবৃতি দেওয়ার জন্য আপনার কাছে কি কোনও উত্স আছে?
Lii

@ লিঃ - দুর্ভাগ্যক্রমে, না। এই প্রশ্নটিতে কোডটি চালানো আমার কাছ থেকে এসেছে: স্ট্যাকওভারফ্লো . com/ প্রশ্নগুলি / ৩৪০৯০৯১//২ । কোড জাভা 7

2
আমি ওপেনজেডিকে হটস্পট / এসসিআর / ওএস / উইন্ডোজ / ভিএম / ওএস_উইনডোস সিপিতে জাজাটাইমমিলিসকে বর্তমান টাইমমিলিসটি সনাক্ত করেছি ( hg.openjdk.java.net/jdk8/jdk8/hotspot/file/87ee5ee27509/src/os/… ) । দেখে মনে হচ্ছে এটি এখনও getSystemTimeAsFileTime, তাই পরিবর্তনটি কোথা থেকে এসেছে তা আমি জানি না। অথবা এটি এমনকি বৈধ। ব্যবহারের আগে পরীক্ষা করুন।

আচরণের পরিবর্তনটি GetSystemTimeAsFileTimeএক্সপি বনাম in এ কীভাবে কাজ করেছিল তার পরিবর্তনের ফলাফল more আরও বিশদ জানতে এখানে দেখুন (টিএল; ডাঃ পুরো সিস্টেমটি আরও কিছু সুনির্দিষ্ট সময় পদ্ধতি চালু করার পরে এটি আরও সুনির্দিষ্ট হয়েছে) got

11

System.nanoTime()পুরানো জেভিএমগুলিতে সমর্থিত নয়। যদি এটি উদ্বেগের বিষয় থাকে তবে সাথে থাকুনcurrentTimeMillis

নির্ভুলতার বিষয়ে, আপনি প্রায় সঠিক। কিছু উইন্ডোজ মেশিনে, currentTimeMillis()প্রায় 10ms (50 মিমি নয়) এর রেজোলিউশন থাকে has আমি নিশ্চিত না কেন, তবে কিছু উইন্ডোজ মেশিন লিনাক্স মেশিনের মতোই নির্ভুল।

আমি মাঝারি সাফল্যের সাথে অতীতে GAGETimer ব্যবহার করেছি


3
"পুরানো জেভিএম" কোনটি হিসাবে? জাভা 1.2 বা কিছু?
সাইমন ফারসবার্গ

1
System.nanoTime () 2004 সালে জাভা 1.5 তে প্রবর্তিত হয়েছিল। 2013 সালে জাভা 1.4 বর্ধিত সমর্থন, সুতরাং System.nanoTime () এখন নির্ভর করা যেতে পারে এবং এই উত্তরটি এখন পুরানো।
ডেভ এল।

9

অন্যরা যেমন বলেছে, কারেন্টটাইমমিলিস হ'ল সময়, যা দিবালোকের সময় সাশ্রয়ের সময় পরিবর্তিত হয়, ব্যবহারকারীরা সময় সেটিংস, লিপ সেকেন্ড এবং ইন্টারনেট টাইম সিঙ্কের পরিবর্তনের কারণে পরিবর্তিত হয়। যদি আপনার অ্যাপ্লিকেশন একঘেয়েভাবে সময় অতিবাহিত সময়ের মান বৃদ্ধির উপর নির্ভর করে তবে আপনি তার পরিবর্তে ন্যানোটাইম পছন্দ করতে পারেন।

আপনি ভাবতে পারেন খেলোয়াড়রা গেম খেলার সময় সময় সেটিংসের সাথে ঝাঁকুনি খায় না এবং সম্ভবত আপনি সঠিক হয়ে উঠবেন। তবে ইন্টারনেট টাইম সিঙ্কের কারণে বা সম্ভবত দূরবর্তী ডেস্কটপ ব্যবহারকারীদের কারণে বিঘ্নটিকে অবমূল্যায়ন করবেন না। ন্যানোটাইম এপিআই এই ধরণের বিঘ্ন থেকে মুক্ত une

আপনি যদি ঘড়ির সময় ব্যবহার করতে চান তবে ইন্টারনেট টাইম সিঙ্কের কারণে সংঘাতগুলি এড়ান, আপনি মেইনবার্গের মতো কোনও এনটিপি ক্লায়েন্টকে বিবেচনা করতে পারেন, যা ঘড়ির হারকে "শৃঙ্খলাবদ্ধ" করে নির্দিষ্ট সময়ের সাথে ঘড়িটিকে পুনরায় সেট করার পরিবর্তে zero

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


19
"কারেন্টটাইমমিলিস হ'ল ঘড়ির সময়, যা দিবালোকের সময় সাশ্রয়ের কারণে পরিবর্তিত হয়" ... নিশ্চিত যে এই বিবৃতিটি মিথ্যা। System.currentTimeMillis()ইউনিক্স / পিক্সিক্স ইপচ যা মধ্যরাত, জানুয়ারি 1, 1970 ইউটিসি থেকে সময় অতিবাহিত সময় (মিলিসেকেন্ডে) প্রতিবেদন করে। ইউটিসি কখনই দিবালোকের সঞ্চয়ের জন্য সামঞ্জস্য করা হয় না, যখন স্থানীয় সময় অঞ্চলগুলি দিবালোকের সঞ্চয়ের জন্য স্থানীয় সময়গুলিতে অফসেট যুক্ত করে বা বিষয়বস্তু দেয় তখন এই মানটি অফসেট হয় না। তদুপরি, জাভা টাইম স্কেল লিপ সেকেন্ডগুলি মসৃণ করে যাতে দিনগুলি 86,400 সেকেন্ডে উপস্থিত থাকে।
স্কটব

5

হ্যাঁ, যদি এই ধরনের নির্ভুলতা ব্যবহারের প্রয়োজন হয় System.nanoTime()তবে সচেতন হন যে আপনার তখন একটি জাভা 5+ জেভিএম প্রয়োজন।

আমার এক্সপি সিস্টেমে, সিস্টেমের সময়টি নীচের কোডটি ব্যবহার করে কমপক্ষে 100 মাইক্রোসেকেন্ড 278 ন্যানোসেকেন্ডের প্রতিবেদন করা দেখি :

private void test() {
    System.out.println("currentTimeMillis: "+System.currentTimeMillis());
    System.out.println("nanoTime         : "+System.nanoTime());
    System.out.println();

    testNano(false);                                                            // to sync with currentTimeMillis() timer tick
    for(int xa=0; xa<10; xa++) {
        testNano(true);
        }
    }

private void testNano(boolean shw) {
    long strMS=System.currentTimeMillis();
    long strNS=System.nanoTime();
    long curMS;
    while((curMS=System.currentTimeMillis()) == strMS) {
        if(shw) { System.out.println("Nano: "+(System.nanoTime()-strNS)); }
        }
    if(shw) { System.out.println("Nano: "+(System.nanoTime()-strNS)+", Milli: "+(curMS-strMS)); }
    }

4

গেমের গ্রাফিক্স এবং মসৃণ অবস্থান আপডেটের জন্য, System.nanoTime()পরিবর্তে ব্যবহার করুন System.currentTimeMillis()। আমি একটি খেলায় কারেন্টটাইমমিলিস () থেকে ন্যানোটাইম () এ পরিবর্তন করেছি এবং গতির মসৃণতায় একটি বড় দৃশ্যমান উন্নতি পেয়েছি।

যদিও এক মিলিসেকেন্ডটি মনে হতে পারে এটি ইতিমধ্যে সুনির্দিষ্ট হওয়া উচিত, দৃশ্যত এটি নয়। কারণগুলি nanoTime()উন্নত করতে পারে এর মধ্যে রয়েছে:

  • ওয়াল-ক্লক রেজোলিউশনের নীচে সঠিক পিক্সেল অবস্থান
  • পিক্সেলগুলির মধ্যে অ্যান্টি-ওরফে করার ক্ষমতা, যদি আপনি চান
  • উইন্ডোজ ওয়াল-ক্লক অসম্পূর্ণতা
  • ক্লক জিটার (দেয়াল-ঘড়ি আসলে সামনে টিক দেয় যখন এর অসঙ্গতি)

যেমন অন্যান্য উত্তরগুলি থেকে বোঝা যায়, ন্যানোটাইমের একটি পারফরম্যান্স ব্যয় বারবার বলা হয় - ফ্রেম প্রতি এটি একবারে কল করা ভাল এবং পুরো ফ্রেমের গণনা করার জন্য একই মানটি ব্যবহার করা ভাল।


1

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


1

System.currentTimeMillis()অতিবাহিত সময়ের জন্য নিরাপদ নয় কারণ এই পদ্ধতিটি সিস্টেমের রিয়েলটাইম ঘড়ির পরিবর্তনের ক্ষেত্রে সংবেদনশীল। আপনার ব্যবহার করা উচিত System.nanoTime। দয়া করে জাভা সিস্টেম সহায়তা দেখুন:

ন্যানোটাইম পদ্ধতি সম্পর্কে:

.. এই পদ্ধতিটি ন্যানোসেকেন্ডের নির্ভুলতা সরবরাহ করে, তবে অগত্যা ন্যানোসেকেন্ড রেজোলিউশন হয় না (এটি কতবার ঘন ঘন মান পরিবর্তিত হয়) - রেজোলিউশনটি কমপক্ষে কারেন্টটাইমমিলিসের চেয়ে কম) (কেবলমাত্র) ছাড়া কোনও গ্যারান্টি দেওয়া হয় না ..

আপনি যদি System.currentTimeMillis()আপনার অতিবাহিত সময়টি ব্যবহার করেন তবে তা নেতিবাচক হতে পারে (পিছনে <- ভবিষ্যতে)


-3

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


6
অন্যান্য উত্তর এবং মন্তব্যে উল্লিখিত হিসাবে, কারেন্টটাইমমিলিস সিস্টেম ক্লক পরিবর্তনের সাপেক্ষে এবং অতএব জেভিএম-এর পূর্বের কিছু ইভেন্টের পরে সময় অতিবাহিত সময় গণনা করার পক্ষে একটি খারাপ পছন্দ choice
ডিউলিন চিহ্নিতকারী
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.