活动名单已锁定哈 八点群里开奖,欢迎大佬们围观 到时候抽奖名单会打乱 _ablackbird 804314046 _Chengpi _HalfSweet _MatrixSeven _naiVe_2 _rainbowatcher _renwu_ _simplepeng _u__w_U_ 0x00593 0x00vip 0x7FoolSage 0xDaNana 0xDiy 0xexx 0xFeee 0xff22 0xK0r4dji 0xMeowwww 0xopc 0xSnu 0xVvVvVvVv 0xXJC 0xYellow_Ben 154cd2b 1KXXXXXXXX 3610z 688c0019c7fc444 7foxcat 8hoAdjwral30qOt 931852jh 996Dogking a199805291036 AaronVvng abc_ABC_123_233 AcaciaSprite accelizero acoolflyer aCuteBoy7 adewalike afkk1000 aguaiguai1 aiermx Alan_66666 AlexJayGuo alexxuwow AliceLFG Allen8Lam AlwaysWandy1122 Amiraclebien Ammo27238506 anpho AnRedPassNow anyonebutmetro ApexFNF Archi52449622 arrco_justin2 ASH_Color6 AshleyP16926806 Astar_ego AstrNexus atom000777 Atticus_liang attrackconfig atuzhu awhiteshark ayingott319 b40yd baconccc baibaidepp48217 bangkaixin BaoMa443073 bben666888 Beijing_Hot benlw4 BetraySmile bianaiSM biantaigary biantaimingoong biewanjitale bigkuaipao binbho7 bittramp1 bityeung biubiula1601481 biubiumiumiumiu black_yau bloatfire9567 bluesky13145 bluesky86747679 bmfy272 boao000 boboodps4f boikawa1212 Booths6u BQSCZ brightyang15 brynn7v bSDL4kDIDaL3EuH BTC21K Btc25f bujianshi C5H8N1NaO4 caborge cadichevuick CaptainVIIX CatStatsD catYueYue CCC_chair cccape598 Cccccc007 Centropy6 CerWatch ch35tnut_ CH66060103 ChainSharkApp chaocz charliextwo ChishSAMA choicky ChoukeChungYoun chrisc3121 chuimiemie CicidaMay clearlove77w5 CLee5087 cliffhp clyzhi CM6243391483672 cnliuneng cocofee2016 CoderPawn coderushing001 CodeToRun cons_0p coolfang8 CorebloxDDI cost16841599 CR7LFG Crazy_Miao_ crazycapmie Cry4o4N0tFound crypto2ntf Crypto47X CurtisCClark cyberpunk91717 cyj228 d_ultraman DanielleGr83368 Dante21299538 DaQiang_Sir daweiba007 Dayewang66 dayonejin dchaofei deafchen2 Dean27412757 dearhua2025 deeplexagi DegenCooking Derick1900 DestinoAqua devbins Dinis_351 Dl4tDQklyu90AHT Dluffywang dollarboy17 doubiliao DreamerBank DubrooKoo DView9577 eagle6616 ElrondGcn emmm1999 Emyorii en_wanting enochYe2023 ENZO0000000 EnzoArcher ErdvkuHLYlVPlIL Eren_Chin Eric_Tsin etoeasy eugrlt EvanChi_log Evn_X2 exixia False_monk Fan5han fandesign2000i fanyang_coder FashaoYang18046 feambo FeinXBT Feliks1025 fenbox ferry__vip FLHSV floatUp567 florian2402743 FLT_wei flyucarl Fm90722718 fngxu23706233 focus666888 fokia6 foo FrankSiriusN Free2034 frend_guo FsaascobbNOJBbF Fstymdy Fuliye886 gabengcu1 Gao2Shou gayoyo980 GcbGcb123 gchgxhfgsfgdf geekwhiteskin geili148 Gele_Master geligulimeng getgater gggoood170402 gili14654090 gkcgkv137430 godogodog0 Gracker_Gao GradyPark86 GrantChong GuoaiZ11355 guxiang gytaot hagunacc Hajimi2025pro hanlang21 Haoren_ happley HappyKzk hbzanclub hchfly heerhunter0 hello_123_321_1 hentulong hHaSQxyHva8940 HHM20191 Hi2Larry_ highsunz Hilda74790083 HiQuan4 HK0503HK hkdom HLiuhai56499 HODLFG hodonari1981 hoho32585150 HooChuYuan hoop_viz houmusic123 how2moon html3c huaite_bulang huangtang12 hudhuc5735 Hughhhhhh88 HugoAIGC hupisha hwwxeud HyoxyD iamhucong iBigQiang icearn0 ifs1776 iHunterDev ikun977 imdaniel829 ImKrisYan immotui imsingee inksnowpi intrain_lyn inywn isiah_lin iWildChild Iyfdehua jAAoOS5rqt96741 jackle68215814 Jackwang232319 jacobshan429 Jaden4903576 JakkuSakura JarvisG49529 Jason17721002 JasonPan jasonwei945 Jaydenagenda JellyRyan9666 jelxy96 Jenenliu1 Jeremy_Ruiz_27 JianfengLu Jiaozibl jiarenlu jiawei322 JinboWang14 jirouxin jjinfire jjjjoooohhhh123 JJJOOOHN jkscu85189928 jochen90396 JohnLu08612443 joney1314520 junchen93209422 JuneJunezm justgmfor JustinLiu569073 justsomebd JyTechn jzw690 k679301578099 Kadio1012 kafei851120 Kaik50592467310 KaiwenR1 kdwycz kekek711 kevin__2012 KevinL1020129 Kevinlitte3 kevinsunchn king1821661 KingerZoru kiwicatone kk28781259 kqy_wj45 KratosWei kuankqaq kulong995 kung_vicky kyledong2023 lalafang001 lance_42303 laoliumang123 laoshaoping an laoshaoping_an laputa20221 Lau_amoe lauk_liu LazyBetrayer Lcz7LCz leavky Leefa19741020 Leguanzhu1 Leo3759 leochen_code leohkd5643112 leonw87 Leoskie_L LFGXBT lg_xinosaur lhq____ lianghanzhen liangxinx lidaxia101 lijing163 lijing182 LikeSimpler likon07385146 LiliStation7931 lingganhuilu Linlun linpika7 linux_okk liqing730814 liqing747 littlebena Lituriby liuhongyu16 liuqcj liuqitoday Liureneth Liuz_747 lizhoufanfan LongZ2020 loohawe LoooooongString LucasHuang0722 Lucifer_test1 lucifer200000 luckyzdoo lungta2012 lunlunbear LuochancyOWO LvJing2011 lvweifu1024 Lyle95959023 lzyyauto M_Nlin M4123R0 M4123RO m47r1x1 machine_wjq MalaysiaMeta malongan manateelazycat MandyJina75768 maozhuaci mark_web666 martin_ysu MatthewUpbeat mcqjcbx mday_diary Me7a5hA meiyounonono777 MemexAlpha MengXi969 mengzhongrenabc Mhuof1 mhyp1xy miaogu_qian microdoog mikasamee millet2022 Minitanghulu minzi003 MixCyborg mklsw mngguqng219172 Mobile_3K Monitor14_cai moole moon_5199 moonsn_it MoonsYouKnowWho moremoremeds mosesinseattle2 Mr_biu_biu_biu Mr_HenTai_II Mr_zongzi MrDeeev mrightx Mrmiss82859326 msfm_2020 Murong3413 MVPBuilderX mxuexxmy myrealfeel NaiveShiki Nekko_CH neo1286873 neo41595239 neoixv NewWealths NeZhaBTC Nibbles_CN NickHood1984 nijiadamalu Nikola_kk ninomonitor niuniu_8964 Nonametoregist nowubeing2 NullQw obhasqr observe83698620 OceanOlaf Oceant1238 odtu945 ogg42440127 ohblue old_garfield olive_trees234 OO58216965 op14e openaisoul outstripmyself OversweetT92872 OxAvicii p_eace_p Page59155608 paperhs901230 paraslene2080 Pedro7653656831 peekthesekai Pengpengpengly pengshp pepe82215845991 PERIA_OKJD Peterpa67742830 PeterPig231991 pfy108 Phantom_XJP pipuwong PiteWillson plushc23 Project_Luo ProsperousAnts pukehub43630 pupushuai QIANGGULI. qimiamy qklman qsw745 quanneixiaogui quanruzhuoxiu rainly rainonpiano Rainy79866 rationzzall rD7kMqgevE4ydxz real_clover_yan realllkk520 Recopec rexwu81401184 Rice18256675 Rn003449887 rnnnmb RoadMonsterx Robertl89718850 robinren716 rook1e_stdout RuanBoSunny RuneInTheMist Ryan_Cxxx ryanfeng2001 s7lx s7r7us sakurachenex samwellwang sanyuanya savigny1779 sbujtn sc401235003 scarletsky1025 scofie42 sCuSO_4 sdydding seaapub seansong search_ai Sevenlilili shandianlala shaojiaqi shaoxun66 shellwalker8 shikou_ri Shinetsu09 shutear shyskysora SimilarFlower SimpleDog_ sir_CBD sitaoooo sjowng skeleton159357 SkyAcetylene SkyzcYou smallzhan Smarita_K Smithskyboy Smnujxrubxruv sniperGG snipermaxxx SnMnSe songrui62460260 Sonitliy sooner6751 ss31603L starkitsam Starnation001 stmoonar258 Stoptui stven55166 subkkkkkk sudolsa sun_chandler_0x sun122w SunInDuck super_daveee SuperMotionNeo supershark2020 sutk5988 sweet_sweeted Swiiiiiiing syl_0735 Sylvester0102 syy110 T11Shu takomama2003 taravitomidy tasongx tcptty tenero terrytao85 text22222 thalassakostas thejojo1987 therealsheldon1 thetsss tiantia68683346 Tim453102085 timfl2049 TincZhao56778 Tinker_QF tinycocha toCohen101 tohka0x01 tom46656630 Tom601480243641 TOOYAMATOSHIO toufu3738 trader0618 TraderHonnour traviscao0514 Tresmort TripleZ666 tt_Alpha_tt tudoupi turbo1118_ tuyu1668798 TwChenqizhen tx1ee TXRUDK U2zO1ccI U8Uho ud28639 unnamelessl unomnity VeryOldman2022 vgocoder vicshen77 Vincentcharming vixiaoan Walker23333333 Walter79052425 walthinker wangluming0 waterbang1 WaterfallOp wcqs18168 wesyzx wetdreamplanner White8693 WhiteA10n3 whynotcool windfall4us Winnie3589 Winzhv wo_lai_ye Wo3o3o woaizhudabao Wok_Wook woodhead_ama woyaofanshen wswch19941012 WuChunming wuyuxing999 wyhai1015 WZ_5200 x_czyt X_Than_ xiaofengcrypto xiaohaqiancat Xiaojiejie808D xiaomu89 xiaoqiangL1003 Ximing0927 xingkaixin XingXi_315 xinzhi xionganjueqi xiyazi xjnuno xlertvk xlxlxxlxlx18134 xusheec XVelpro xxoxxsxx_ xxxx_shakira y_0th yaboshouwangzhe Yamir_33 yang391783 yboker ychen1202 yeyuntian2008 yhaqd yht0616 yinchao_qaq yiyezhiqiuev YizhuangYang Ymc3Ymty Ynewtime yosh31415926 you2032zhu youming_li YoxoFuck ytlmlv YueMaoo YugeHG Yuking661025115 Yuushimo2333 yyybx1 ZachariahC72057 zaincheungx zaqmlpoknwsxed zccrs zeroc0077 zerodotzero ZeroX2017 Zfffpy zhangzenger2 ZhaoG80287 Zhaokuangying zheyu_HH zhh2046 zhibinketang zhorui zhouhon27289667 zifeng1125 zihuazhuanche Zixuanni09 zjshouji zoko_boy zomcoo zsp9901 ZsxlZsxl199929 zzytiger
今天给你们讲一个低性能芯片极限技术优化的故事 学了这篇推文,即使你不是做低性能芯片的场景也非常有用,操作系统老师傅倾情分享 当时我们面临的问题是这款国产芯片性能非常低,大概只有2000年奔腾处理器的水平,而且没有GPU和OpenGL的支持,内存带宽也非常低,面临的优化挑战非常大。 而现代软件库的开发效率很高,但是库本身的开销也非常大,面临X86这种CPU、GPU、内存带宽、显存带宽都很大的硬件,这些软件库的开销会被硬件的性能忽略掉,感受不出来。 而当年的国产芯片的性能,可以这样说,真实世界的硬件模拟器,任何代码没有极限优化的地方,它就奇慢无比,让你看到幻灯片的动画 我那时心里并不担心,因为我在2005年的时候,用J2ME做游戏,那个手机芯片的性能更弱,内存只有800KB,那个手机都能流畅的跑游戏,国产芯片肯定没问题。 当然,做极限优化肯定不能像原来做游戏那样从底层造图形库,虽然性能可以做到极致,但是长期来可维护性比较差,因为后来的人不懂原创的图形库细节。 遇到极限挑战的时候不要慌张,沉住气,想办法,一定可以解决,下面是我们的武功秘籍,板凳端好了: 1. 首先国产芯片不支持OpenGL,所以最开始的QML全部得用Qt Widget重写了,在有OpenGL显卡的情况下,带OpenGL的图形库要快很多,但是没有OpenGL的芯片运行OpenGL的代码就会非常吃力,因为Linux有Mesa硬件抽象库,当GPU缺乏OpenGL支持的时候,Mesa会自动用CPU去模拟OpenGL调用,这个会极大的增加CPU的负担,也会让系统整体变的很慢 2. 应用程序编写的时候,要仔细分析函数的依赖,在X86芯片上,可以随意写,不用过多考虑函数依赖,因为太快了,但是在国产芯片就要仔细分析函数的调用依赖,把界面显示的代码挪到最前面,先让用户看到界面,然后再是其他的。那时候先要做UX流程分析,代码除了按照底层逻辑顺序走,还要考虑UX流程,这样加载比较慢的代码,可以根据UX流程,一次逐步加载,比如一个控制中心模块,完全加载需要5秒,通过界面流程控制,点击某些地方的时候再执行代码,而不是模块执行就全部执行,这样每个界面可以控制在300~500ms之间展示 3. 函数循环要注意,尽量不要写那种一直等待的函数,用锁或者其他通知机制来替代,这样可以减少很多无谓的性能消耗 4. 其实很多代码慢不在代码本身,而在于加载某些动态库很慢,这种动态库的加载常规优化方法不行,太Hacking,我们就利用了现代CPU都具备的特性,内存缓存。我们会分析整个系统所需的动态库,也会分析用户从登录到进入各个界面的空闲时间。我们做了一个深度的优化,就是利用一切用户发愣的时间,比如输入登录密码的时候,桌面等的时候,不操作的时候......只要用户光标不动一段时间,我们就见缝插针的把动态库内容读取一次到内存。这样的好处是,原来应用程序加载的时候,先要加载动态库3秒,然后绘制界面50ms,总共3秒多的时间,因为动态库已经被预热到内存中去了,再次加载动态库的时候,就不用从磁盘读取到内存,直接去缓存里面调用,这样时间就从3050ms降低到50ms 5. 用户空间到内核空间,很多图形库的代码都在用户态运行,在X86芯片没问题,但是在低性能芯片上,这些用户态的逻辑功能就会变成非常多的syscall,syscall的调用非常多以后,代码就会内核中反复切换,这个切换的代价是非常大的。只要是CPU级别的优化,一定要防止代码在CPU和GPU之间反复搬运、磁盘和内存之间反复搬运、代码在内核态和用户态之间来回切换。所以,我们先上strace等工具,剖析系统调用频繁的代码,把这些代码直接写成内核模块,把原来上百次syscall的逻辑现在换成一次内核层的API,当系统调用从300次降低到一次以后,整个软件的性能就会层质的飞跃 6. 最后就是重写桌面环境后端,原来是Gnome的一部分代码,全部用golang重写后,删掉很多开源社区兼容各种人的代码,精简逻辑,很多都有70%以上的性能提升 好了,喜欢我创业故事的朋友欢迎点赞转发 今天这篇文章这么硬核,老板们不买台懒猫微服支持一下?你的支持是我持续分享硬核技术文章的动力,感谢老板,祝老板们发大财!