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

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

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

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

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

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

你受到過閏秒帶來的影響嗎?
參考連結:
[1]https://www.cnet.com/tech/computing/tech-giants-try-banishing-the-leap-second-to-stop-internet-crashes/
[2]https://engineering.fb.com/2022/07/25/production-engineering/its-time-to-leave-the-leap-second-in-the-past/
[3]https://www.itu.int/net/pressoffice/press_releases/2015/53.aspx