2011-03-06 12 views
5

erlang प्रलेखन कहते हैं:एरलांग क्यों था: अब() इस तरह से specced कि यह एक नोड के समय skew सकता है?

erlang: अब()
[...] यह भी गारंटी है कि इस BIF को आगामी कॉल लगातार मूल्यों में वृद्धि रिटर्न। इसलिए, अब से वापसी मूल्य() का उपयोग अद्वितीय समय-टिकटों को उत्पन्न करने के लिए किया जा सकता है, और यदि इसे एक तेज मशीन पर एक तंग पाश में बुलाया जाता है तो नोड का समय खराब हो सकता है। [...]

मुझे यह थोड़ा अजीब लगता है (विशेष रूप से यह मानना ​​कि ग्रैन्युलरिटी माइक्रोसॉन्ड है)। यह इस तरह से क्यों specced था?

उत्तर

6

क्योंकि इसका उपयोग टाइमस्टैम्प संख्याओं को विशिष्ट रूप से उत्पन्न करने के लिए किया जा सकता है। os मॉड्यूल में एक संस्करण है जो ऐसा नहीं करता है।

+4

तो जब यह कहता है कि "नोड का समय खराब हो सकता है" तो इसका वास्तव में मतलब है, "अब समय() का समय खराब हो सकता है"? – MatthewToday

+0

यह मेरी समझ है। – natevw

+0

हां, इस स्रोत कोड के आधार पर यह स्पष्ट है कि स्कूली होने पर सिस्टम घड़ी संशोधित नहीं होती है, केवल आवश्यक होने पर एरलांग वीएम की आंतरिक स्थिति थोड़ी-थोड़ी हो जाती है: http://code.google.com/p/ erlang/स्रोत/ब्राउज़/ट्रंक/erts/emulator/beam/erl_time_sup.c? r = 88 # 662 (यह घड़ी तब तक अस्थायी रहेगी जब तक कि सिस्टम घड़ी कैच न हो जाए, यानी यदि आप एक तंग लूप में चिपकते हैं, तो सो जाओ, परिणाम बाद में जांच करते समय सामान्य पर वापस जाएं।) – natevw