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

边栏推荐
- 1404萬!四川省人社廳關系型數據庫及中間件軟件系統昇級采購招標!
- MSYQL, redis, mongodb visual monitoring tool grafana
- In 2022, the financial interest rate has dropped, so how to choose financial products?
- 【软件测试】01 -- 软件生命周期、软件开发模型
- static静态成员变量使用@Value注入方式
- ChainSafe跨链桥部署教程
- JVM(4) 字節碼技術+運行期優化
- 揭秘!付费会员制下的那些小心机!
- What if the win11 policy service is disabled? Solution to disabling win11 policy service
- mysql远程连接
猜你喜欢

云服务器的安全设置常识

JVM (4) bytecode technology + runtime optimization

【U盘检测】为了转移压箱底的资料,买了个2T U盘检测仅仅只有47G~

How is the combination of convolution and transformer optimal?

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

Game maker Foundation presents: Valley of belonging

Product axure9 (English version), repeater implements addition, deletion, query and modification of table contents (crud)

Win11 system component cannot be opened? Win11 system widget cannot be opened solution

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

JVM(4) 字節碼技術+運行期優化
随机推荐
JVM (3) class loading
Escape and March, the "two-sided Jianghu" of temporary food
【网络方向实训】-企业园区网络设计-【Had Done】
炒股用同花顺开户交易安全吗?
How important is it to make a silver K-line chart?
使用 OpenCV 的基于标记的增强现实
Cross browser testing of selenium
One hour to build a sample scenario sound network to release lingfalcon Internet of things cloud platform
IP error problem of PHP laravel using AWS load balancer
Win11系统频繁断网怎么办?Win11网络不稳定的解决方法
逻辑结构与物理结构
ArrayList< Integer> Use = = to compare whether the values are equal, and -129=- 129 situation thinking
Why is informatization ≠ digitalization? Finally someone made it clear
高能直播,大咖云集!邀你共启BizDevOps探索之路。
出逃与进军,临期食品的「双面江湖」
全局变量和静态变量的初始化
AI scene Storage Optimization: yunzhisheng supercomputing platform storage practice based on juicefs
【笔记】再笔记--边干边学Verilog HDL – 014
npm ERR! fatal: early EOF npm ERR! fatal: index-pack failed
CAD Assistant - 3D模型格式转换利器