大廠們再也無法忍受閏秒帶來的一堆 bug 了。
現在,谷歌 Meta 微軟亞馬遜等一眾科技巨頭發起了一項倡議:廢除閏秒!
閏秒這玩意,說白了就是通過給 " 世界標準時間 " 加(或減)1 秒,讓它更接近 " 太陽時 "。
" 世界標準時間 "(UTC)與原子鐘測量的精確時間同步," 太陽時 " 根據地球自轉測量得出,但地球自轉并不穩定。
例如,兩者相差超過 0.9 秒時,就在 23 點 59 分 59 秒與 00 點 00 分 00 秒之間,插入一個原本不存在的 "23 點 59 分 60 秒 ",來將時間調慢一秒鐘。

然鵝,就是這個看似有點用的閏秒,把一眾程序員愁壞了。
憑空少一秒、或冒出一個 " 第 60 秒 ",就得出動一眾人調整時間(如暫時關閉 NTP 等)、修改程序,盡可能降低閏秒帶來的影響。對此 Meta 表示:
閏秒造成的破壞,比它帶來的用處大多了。
這群大廠還找來了兩家權威機構,即美國國家標準與技術研究院(NIST)和國際計量局(BIPM),與他們達成了一致意見。
雖然閏秒似乎離我們略遠,不過這些年來,它確實給計算機行業惹了不少麻煩。
閏秒于 1972 年被引入,迄今為止已經增加了 27 個閏秒。
每一次增加閏秒,都會引起不少公司的計算機或是應用程序出現問題。
例如,在互聯網發展得如火如荼的 2012 年,閏秒就帶來了一波 " 潮水般 " 的影響。

閏秒在當年 6 月 30 號出現后,國外社區 Reddit、瀏覽器 Mozilla、領英和點評網站 Yelp 的服務器全部出現了問題,此外依賴計時器的機票預訂服務 Amadeus 也發生了故障。
但閏秒造成的影響,并沒有在這之后消失,畢竟總有新的 bug 出現(手動狗頭)。
2017 年,Cloudflare 也遇上了閏秒故障,導致一眾客戶用不了相關服務。盡管程序員們已經提前寫好應對程序,然而在實際運行時,還是出了問題。
所以,究竟應該如何消除閏秒帶來的影響?
當前最常用的方法是 "平攤法"。
以谷歌為例,程序員們會將多出來的一秒鐘分割成很多個小時間段(如幾分之一秒),然后,在不影響程序運行的情況下悄悄加入到時間中。
這樣,當閏秒來臨時,程序實際上已經平安無事地度過了這一秒鐘。
對于 Meta 程序員來說,采取的也是相似的做法,把這個閏秒在時間表上悄無聲息地 " 抹掉 "。

但無論如何,只要下一個閏秒還會出現,大廠們就還得繼續面臨閏秒帶來的影響,花費額外的精力去 " 消除 " 它。
包括谷歌、亞馬遜、Meta 和微軟等大廠在內,都感覺閏秒的出現是利大于弊,Meta 還專門寫了篇文章,呼吁廢除閏秒。
當然,想廢除閏秒的也不止這幾個大廠。
早在 2015 年的時候,國際電信聯盟就在 WRC 上討論過是否要保留閏秒的事情。

只是報告結果還沒出來,預計會等到2023年。
對于廢除閏秒這事兒,有網友調侃:
臉書的開發們實在太害怕閏秒了,他們覺得推動計時法改變是比修代碼更簡單的事情。

但此前也有網友提到,其實不止 IT 行業,工業上也會受到閏秒的影響。

你受到過閏秒帶來的影響嗎?
原文地址:http://www.myzaker.com/article/62df86088e9f090de01e1fb0