当前位置:网站首页>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》

边栏推荐
- How is the combination of convolution and transformer optimal?
- AI场景存储优化:云知声超算平台基于 JuiceFS 的存储实践
- Cross browser testing of selenium
- KDD 2022 | 協同過濾中考慮錶征對齊和均勻性
- Product axure9 (English version), repeater implements addition, deletion, query and modification of table contents (crud)
- 1404万!四川省人社厅关系型数据库及中间件软件系统升级采购招标!
- Win11策略服务被禁用怎么办?Win11策略服务被禁用的解决方法
- JVM (4) bytecode technology + runtime optimization
- Connaissance générale des paramètres de sécurité du serveur Cloud
- 谁在抖音文玩里趁乱打劫?
猜你喜欢

学习放大器至少要3年?

微信推出图片大爆炸功能;苹果自研 5G 芯片或已失败;微软解决导致 Edge 停止响应的 bug|极客头条

Win11系统频繁断网怎么办?Win11网络不稳定的解决方法

物理验证LVS流程和技术点滴(上)

Canonical的工程师们正努力解决Firefox Snap的性能问题

STM32CubeMX 学习(6)外部中断实验

Violent solution to the question of guessing the ranking

Cantata 9.5版本已正式通过SGS-TÜV认证,符合所有主要软件安全标准

创作者基金会 6 月份亮点

Win11系统小组件打不开?Win11系统小组件无法打开解决方法
随机推荐
全局变量和静态变量的初始化
测试方法学习
自动获取本地连接及网络地址修改
startService() 过程
nacos 问题
KDD 2022 | 协同过滤中考虑表征对齐和均匀性
go: 如何编写一个正确的udp服务端
@Sneakythlows annotation
Game Maker 基金会呈献:归属之谷
【️爬虫必备->Scrapy框架从黑铁到王者️】初篇——万字博文详解(建议收藏)
做白银k线图有多重要?
揭秘!付费会员制下的那些小心机!
JVM(4) 字節碼技術+運行期優化
WPS和Excele
mysql远程连接
C语言数组专题训练
Arm comprehensive computing solution redefines visual experience and powerfully enables mobile games
一个mysql里有3306端口下,一个mysql有20多个数据库,怎么一键备份20多个数据库,做系统备份,防止数据误删除?
Mba-day19 if P then q contradictory relation P and not Q
Kdd 2022 | prise en compte de l'alignement et de l'uniformité des représentations dans le Filtrage collaboratif