亚洲av成人精品日韩一区,97久久久精品综合88久久,玩弄japan白嫩少妇hd,亚洲av片不卡无码久久,玩弄人妻少妇500系列

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>yadcc C++分布式編譯系統(tǒng)

yadcc C++分布式編譯系統(tǒng)

2022-06-17 | zip | 0.29 MB | 次下載 | 2積分

資料介紹

授權(quán)協(xié)議 BSD
開發(fā)語言 C/C++
軟件類型 開源軟件
所屬分類 開發(fā)工具、 編譯器

軟件簡介

yadcc(Yet Another Distributed C++ Compiler)是一套騰訊廣告自研的分布式編譯系統(tǒng),用于支撐騰訊廣告的日常開發(fā)及流水線。相對于已有的同類解決方案,其針對實際的工業(yè)生產(chǎn)環(huán)境做了性能、可靠性、易用性等方面優(yōu)化。

yadcc 目前在騰訊 1700+ 核的集群中每天編譯 300,0000+ 個目標文件,產(chǎn)出約 3~5TB,已經(jīng)持續(xù)穩(wěn)定運營 8 個月。取決于代碼邏輯及本地機器配置,yadcc 可以利用幾百乃至 1000+ 核同時編譯(騰訊內(nèi)部使用 512 并發(fā)編譯),大大加快構(gòu)建速度。

具體簡介及技術(shù)細節(jié)可以參考技術(shù)文檔。

系統(tǒng)要求

  • Linux 3.10 及以上內(nèi)核,暫不支持其他操作系統(tǒng);
  • x86-64 處理器
  • 編譯yadcc需要GCC 8 及以上版本的編譯器,基于yadcc進行分布式編譯時可以支持其他更低版本編譯器。

基本原理

ccache、distccicecc等工具類似;

  • 客戶端偽裝成編譯器(通常是通過ln -sf yadcc g++創(chuàng)建的符號鏈接)
  • 通過將客戶端偽裝的編譯器加入PATH頭部,這樣構(gòu)建系統(tǒng)就會實際執(zhí)行yadcc來編譯
  • yadcc會按照命令行對源代碼進行預(yù)處理,得到一個自包含的的預(yù)處理結(jié)果
  • 以預(yù)處理結(jié)果、編譯器簽名、命令行參數(shù)等為哈希,查詢緩存,如果命中,直接返回結(jié)果
  • 如果不命中,就請求調(diào)度器獲取一個編譯節(jié)點,分發(fā)過去做編譯
  • 等待直到從編譯集群中得到編譯結(jié)果,并更新緩存

由于預(yù)處理時間通常遠小于編譯時間,因此這樣可以降低單個文件的本地開銷。同時,由于等待編譯結(jié)果時本地無需進行操作,因此可以增大本地的編譯并發(fā)度(如8核機器通常可以make -j100),以此實現(xiàn)更高的吞吐。

需要注意的是,分布式編譯通常只能提高吞吐,但是不能降低單個文件的編譯耗時(假設(shè)不命中緩存)。因此,對于無法并發(fā)編譯的工程,除非命中緩存,否則分布式編譯通常不能加快編譯,反而可能有負面效果。

設(shè)計特點

系統(tǒng)由調(diào)度器、緩存服務(wù)器、守護進程及客戶端組成:

  • 對上層的構(gòu)建系統(tǒng)(Make、CMake,Blade、Bazel 等)透明,方便適配各種構(gòu)建系統(tǒng)。
  • 調(diào)度器全局共享,所有請求均由調(diào)度節(jié)點統(tǒng)一分配。這樣,低負載時可允許客戶端盡可能提交更多的任務(wù),集群滿載時可阻塞新請求避免過載
  • 中心的調(diào)度節(jié)點也避免了需要客戶機感知編譯集群的列表的需要,降低運維成本。
  • 編譯機向調(diào)度器定期心跳,這樣我們不需要預(yù)先在調(diào)度器處配置編譯機列表,降低運維成本。
  • 分布式緩存避免不必要的重復(fù)編譯。同時本地守護進程處會維護緩存的布隆過濾器,避免無意義的緩存查詢引發(fā)不必要的網(wǎng)絡(luò)延遲。
  • 使用本地守護進程和外界通信,這避免了每個客戶端均反復(fù)進行TCP啟動等操作,降低開銷。另外這也允許我們在守護進程處維護一定的狀態(tài),提供更多的優(yōu)化可能。
  • 客戶端會和本地守護進程通信,綜合控制本地任務(wù)并發(fā)度避免本地過載。
  • 通過編譯器哈希區(qū)分版本,這允許我們的集群中存在多個不同版本的編譯器。

同時,做了多層重試,確保不會因為網(wǎng)絡(luò)抖動、編譯機異常離線等工業(yè)場景常見的問題導(dǎo)致的不必要的失敗。

?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1DD3118電路圖紙資料
  2. 0.08 MB   |  1次下載  |  免費
  3. 2AD庫封裝庫安裝教程
  4. 0.49 MB   |  1次下載  |  免費
  5. 3PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
  6. 1.12 MB   |  1次下載  |  免費
  7. 4網(wǎng)絡(luò)安全從業(yè)者入門指南
  8. 2.91 MB   |  1次下載  |  免費
  9. 5DS-CS3A P00-CN-V3
  10. 618.05 KB  |  1次下載  |  免費
  11. 6海川SM5701規(guī)格書
  12. 1.48 MB  |  次下載  |  免費
  13. 7H20PR5電磁爐IGBT功率管規(guī)格書
  14. 1.68 MB   |  次下載  |  1 積分
  15. 8IP防護等級說明
  16. 0.08 MB   |  次下載  |  免費

本月

  1. 1貼片三極管上的印字與真實名稱的對照表詳細說明
  2. 0.50 MB   |  103次下載  |  1 積分
  3. 2涂鴉各WiFi模塊原理圖加PCB封裝
  4. 11.75 MB   |  89次下載  |  1 積分
  5. 3錦銳科技CA51F2 SDK開發(fā)包
  6. 24.06 MB   |  43次下載  |  1 積分
  7. 4錦銳CA51F005 SDK開發(fā)包
  8. 19.47 MB   |  19次下載  |  1 積分
  9. 5PCB的EMC設(shè)計指南
  10. 2.47 MB   |  16次下載  |  1 積分
  11. 6HC05藍牙原理圖加PCB
  12. 15.76 MB   |  13次下載  |  1 積分
  13. 7802.11_Wireless_Networks
  14. 4.17 MB   |  12次下載  |  免費
  15. 8蘋果iphone 11電路原理圖
  16. 4.98 MB   |  6次下載  |  2 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935127次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191390次下載  |  10 積分
  9. 5十天學(xué)會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183342次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81588次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73815次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65989次下載  |  10 積分