雪花算法(07)雪花算法最終版

雪花算法初步完成后,我們討論了幾個位運(yùn)算的寫法峻堰,大家知道雪花算法一旦確定后讹开,很多數(shù)字都是定死的,比如機(jī)器占多少位茧妒,或者時間向左位移多少萧吠,這些在算法具體邏輯確定后就不會變了。那么寫成最后的數(shù)字和用位運(yùn)算計算出來有什么區(qū)別呢桐筏?

其實沒有區(qū)別纸型,我們的程序分為編譯期和運(yùn)行期,我們直接把程序編譯好,然后查看class文件狰腌,就會發(fā)現(xiàn)除破,兩種寫法編譯結(jié)果是一樣的。用位運(yùn)算計算出來只是更加靈活而已琼腔,定義很多死的數(shù)字也容易寫錯瑰枫,后期維護(hù)混亂。所以丹莲,下面我們來一個最終版光坝,首先看基本的幾個常量定義:

然后看時間部分的常量:

再看機(jī)器信息的常量:

最后看毫秒內(nèi)序列的常量定義:

上面的常量中,只要修改最開始的四個部分的長度甥材,下面的所有常量都會自動修改盯另。






再來看一下主程序:

注意上面判斷統(tǒng)一毫秒內(nèi)序列的變化。其它輔助方法都沒有什么變化洲赵,不再討論≡Ч撸現(xiàn)在我們再看看編譯完后生成的class文件:

可以看到編譯后的文件其實就是最終定義了死的常數(shù)。包括主程序也是一樣:

上面就是雪花算法的最終版5肌Vシⅰ!





最后來測試一下效率苛谷,我們來生成300萬個id看看花費的時間:



代碼地址:https://gitee.com/blueses/snowflake-demo? 07

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末辅鲸,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子腹殿,更是在濱河造成了極大的恐慌瓢湃,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赫蛇,死亡現(xiàn)場離奇詭異,居然都是意外死亡雾叭,警方通過查閱死者的電腦和手機(jī)悟耘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來织狐,“玉大人暂幼,你說我怎么就攤上這事∫破龋” “怎么了旺嬉?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長厨埋。 經(jīng)常有香客問我邪媳,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任雨效,我火速辦了婚禮迅涮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘徽龟。我一直安慰自己叮姑,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布据悔。 她就那樣靜靜地躺著传透,像睡著了一般。 火紅的嫁衣襯著肌膚如雪极颓。 梳的紋絲不亂的頭發(fā)上朱盐,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天,我揣著相機(jī)與錄音讼昆,去河邊找鬼托享。 笑死,一個胖子當(dāng)著我的面吹牛浸赫,可吹牛的內(nèi)容都是我干的闰围。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼既峡,長吁一口氣:“原來是場噩夢啊……” “哼羡榴!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起运敢,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤校仑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后传惠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體迄沫,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年卦方,在試婚紗的時候發(fā)現(xiàn)自己被綠了羊瘩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡盼砍,死狀恐怖尘吗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情浇坐,我是刑警寧澤睬捶,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站近刘,受9級特大地震影響擒贸,放射性物質(zhì)發(fā)生泄漏臀晃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一酗宋、第九天 我趴在偏房一處隱蔽的房頂上張望积仗。 院中可真熱鬧,春花似錦蜕猫、人聲如沸寂曹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽隆圆。三九已至,卻和暖如春翔烁,著一層夾襖步出監(jiān)牢的瞬間渺氧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工蹬屹, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留侣背,地道東北人。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓慨默,卻偏偏與公主長得像贩耐,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子厦取,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,090評論 1 32
  • 這篇文章是我之前翻閱了不少的書籍以及從網(wǎng)絡(luò)上收集的一些資料的整理潮太,因此不免有一些不準(zhǔn)確的地方,同時不同JDK版本的...
    高廣超閱讀 15,564評論 3 83
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,511評論 1 51
  • 學(xué)習(xí)C語言程序設(shè)計都會用到高等數(shù)學(xué)知識和計算機(jī)基礎(chǔ)理論知識虾攻。 使用可變參數(shù)應(yīng)該有以下步驟: 1)首先在函數(shù)里定義一...
    皓小天閱讀 5,769評論 0 2
  • ?1 C語言程序的結(jié)構(gòu)認(rèn)識 用一個簡單的c程序例子铡买,介紹c語言的基本構(gòu)成、格式霎箍、以及良好的書寫風(fēng)格奇钞,使讀者對c語...
    CONLYOUC閱讀 8,697評論 9 66