当前位置:网站首页>Performance improvement at the cost of other components is not good
Performance improvement at the cost of other components is not good
2022-06-29 19:34:00 【Topomeyer - long development road】
In the development of operating system , We must have an overall view of the system performance . The goal of the system designer is : Make the whole system run faster , At the same time, a certain balance is achieved in the running speed of each application .
On the other hand , Applications tend to take a selfish view of performance :” I will try my best to run faster . The impact on the rest of the system is not my concern .”
Some applications put themselves in the boot group , For faster loading . This doesn't really make the system run faster . It is only in the stage of transfer and startup . By putting some application startup costs into operating system startup , Although the time between the user double clicking the application icon and the application being ready to run is reduced , But the total time has not changed .
for example , Consider the following time chart . “*” Mark the time when the user turns on the computer ,”+” Mark the point in time when the Explorer is ready and the user double clicks the application icon ,”!” Mark the point in time when the application is ready .

Then the application developer says :“ Oh my god , The pink one ‘ Application startup ’ Part is very large . What can we do to make it smaller ? That's true. , Let's split the application startup into two parts ……

And put some of them in Startup In the group .

“ wow , see , The size of the pink bar ( Represents the time required for our application to be ready after the user double clicks the icon ) It's much shorter now !” The team then puts this new, shorter value into their performance status report , Everyone gets a raise , Maybe they go to have a big dinner to celebrate .
Of course , Take a look at the whole situation , From the asterisk to the exclamation point , Nothing has changed . It still takes the same amount of time for the application to be ready from a cold start . All these performance improvements are just robbing Peter to pay Paul . perform “ Application startup 1” The time spent is now counted in the operating system and not in the application . You're messing around with numbers , But end users get nothing .
For the chart above , Suppose the user wants to run your application ! If the user doesn't want to run your application , I just want to check their email , Then they will be “ Application startup 1” pay , Even if they don't get any benefit .
Another example of an application that has a selfish view of performance comes from a company that develops icon overlay handlers (icon overlay handler) The company . The shell treats the coverage calculation as a low priority item , Because it is more important to display icons on the screen , So users can start doing whatever they want .
The company wants to know if there is a way to improve their performance , Overlay the icon on the screen even before it appears , Show right “ performance ” A very selfish explanation of .
Performance is about getting users to complete their tasks faster . If the task does not involve running your program , So your “ Performance improvements ” It's really a performance barrier . I believe your program is very good , But if you expect everyone who installs your program to think it should take precedence over what they do , That is quite presumptuous .
summary
Or that sentence : people oriented , user-centric .
Before we mess around with the code , Let's put ourselves in another position : If I am a user of this software , What do I feel ? Can you swear at your mother ?
Do not drill into the tip of a technical bull's horn !
Last
Raymond Chen Of 《The Old New Thing》 It's one of my favorite blogs , There's a lot about Windows Little knowledge , For the vast Windows For platform developers , It's really helpful .
This article is from :《Performance gains at the cost of other components》

边栏推荐
猜你喜欢

开发者任务中心上线!千元豪礼送不停!

CAD Assistant - 3D模型格式转换利器

KDD 2022 | characterization alignment and uniformity are considered in collaborative filtering

虎符限币种提现 用户曲线出金即亏损

使用 OpenCV 的基于标记的增强现实

The sales volume could not catch up with the speed of taking money. Weima went to Hong Kong for emergency rescue

【笔记】再笔记--边干边学Verilog HDL – 014

mysql远程连接

KDD 2022 | 協同過濾中考慮錶征對齊和均勻性

【️爬虫必备->Scrapy框架从黑铁到王者️】初篇——万字博文详解(建议收藏)
随机推荐
Win11安装权限在哪里设置?Win11安装权限设置的方法
软件工程专业大二,之前的学习情况不太好该怎么规划后续发展路线
KDD 2022 | 协同过滤中考虑表征对齐和均匀性
Win11系统小组件打不开?Win11系统小组件无法打开解决方法
JVM(4) 字節碼技術+運行期優化
WPS和Excele
揭秘!付费会员制下的那些小心机!
From CIO to Consultant: the transformation of it leaders
Game maker Foundation presents: Valley of belonging
3 - 3 découverte de l'hôte - découverte à quatre niveaux
JVM (2) garbage collection
技术保证质量,软件测试的这些测试方法你都掌握了吗?
go: 如何编写一个正确的udp服务端
@Sneakythlows annotation
14.04 million! Sichuan provincial human resources and social security department relational database and middleware software system upgrade procurement bidding!
KDD 2022 | 協同過濾中考慮錶征對齊和均勻性
Rejected by a large company? Tencent experts summarized 11 reasons for being rejected!
docker compose 部署Flask项目并构建redis服务
Game Maker 基金会呈献:归属之谷
Canonical的工程师们正努力解决Firefox Snap的性能问题