软件优化技术真经-总论篇

第20课:大数据性能调优的本质和Spark性能调优要点分析 第20课:大数据性能调优的本质和Spark性能调优要点分析我们谈大数据性能调优,到底在谈什么,它的本质是什么,以及 Spark 在性能调优部份的要点,这两点让在进入性能调优之前都是一个至关重要的问题,它的本质限制了我们调优到底要达到一个什么样的目标或者说我们是从什么本源上进行调优。我们先看一下Spark官网的性能优化指南(http://spark.apache.org/docs/latest/tu 阅读详情

       

软件优化是一项系统工程。要理解软件优化,首先对软件要有个本质的认识。软件是什么呢?它是一组在计算机平台上运行的逻辑代码。这个概念比较拗口。第一,软件是一组计算机能理解并运行的逻辑代码。第二,软件一定是运行在某个计算机平台上,可能是大型机,可能是PC,可能是手机。好,认识了这两点。就可以正确认识软件优化。

首先,软件既然是计算机的逻辑,那么好的软件就是贴合计算机体系结构的逻辑,贴合的程度越高,软件的性能越好。现代计算机,从大型机到手机,其体系结构都体现出一个基本的原理:局部性原理。80%的计算机资源(CPU,内存……)是花费在20%的代码上的。Cache技术就是这个原理的集中体现,无论是硬件(如CPU的cache)还是软件(如操作系统的working set),都是尽可能的重用“计算”,这样就提高了整个计算机系统的性能。局部性原理在软件优化上有两个外延。第一,去优化消耗80%计算机资源的20%的代码,而不是去优化消耗20%计算机资源的80%的代码。第二,在优化重要的20%代码时,无论是数据结构还是算法,都要尽量使其贴合局部性原理。经常使用的数据结构应该尽量紧凑,使其符合空间局部化,这样就可以最大限度的利用CPU的data cache。算法应当尽量重用计算,使其符合时间局部化。当然,算法和数据结构不是孤立的,在局部性原理指导下,二者的密切协作对软件性能是起决定性作用的。

其次,软件是运行在某个平台上,那就要充分利用该平台的特性去做优化。如果说局部性原理是个“泛化”的原则,那么平台优化就是“特化”技术了。各种平台的差别很大,所以所用的技术当然会有所不同。PC的内存和手机的内存不是一个数量级的,当然对数据结构和算法都要有不同的设计;超线程的CPU,双内核CPU都对优化提出不同要求;CPU的流水线结构不同,对汇编指令的调整也就不同;有的CPU有SIMD指令,当然可以充分利用。另外,这里的“平台”除了指硬件(CPU体系和内存体系),还包括系统软件,特别是操作系统和编译器。要清楚,我们的软件是在操作系统的调度下与硬件资源打交道的,所以要清楚操作系统的特性(如它是如何管理进程/线程,如何调度页面,页面大小是多少)。编译器是软件的代言人,我们用高级语言写的程序只是程序员逻辑,经过编译器这一中间层,未必能贴合CPU逻辑,所以要了解不同编译器的特性,使程序逻辑尽量贴合编译器思维,这样能生成更高效的代码。总而言之,既然要在某个平台上做优化,就要对该平台有深入的认识,包括硬件(CPU体系和内存体系)和系统软件(操作系统和编译器)。

以上两点就是软件优化的基础。脱离了这个基础,优化就将成为空中楼阁。

在后文中,我将探讨软件优化的框架。

windows最强优化软件cacheman Cacheman是专门用来优化系统的软件,它只占用极少的系统资源。Cacheman会成为系统的一个”服务”。可进行自动修复已无用但尚未释放的内存、调整系统各项参数到最佳状态等。支持中文界面,有部分功能限制。 古老的动态缓存管理工具, 超过15年历史. 小内存时代必备的系统辅助工具. 值得一提的就是, 微软几乎不曾推荐过任何所谓系统优化工具. 但是曾经公开赞扬Cacheman. 包含软件和注册机 立即下载

相关推荐

FSL软件安装

FSL软件安装

huang_tianyuan的博客 2630

软件性能测试的本质

    淘宝网每年的双11 活动都是对其服务器性能的挑战。因为在这一天所有商品半价,购物的用户量剧增。做为淘宝网的高层更多的关心在线用户数,用户交易量,总交易金额等,做为一名技术人员,我们可能更关心当天系统的吞吐量、每秒钟点击率以及系统资源的消耗情况等,对!这就是系统的性能。那么性能的本质是什么呢?我试抓住一些点来解释。   基于用户体验的性能测试     但对于一个用户来说,他可以...

weixin_34279061的博客 203

mysql数据目录迁移后表不存在_mysql 直接从date 文件夹备份表,还原数据库之后提示 table doesn`t exist的原因和解决方法...

补充:正常情况下,建议数据库备份最好用工具进行备份,通过拷贝数据库表进行数据迁移,不同的环境会出现各种不同的意外问题。背景:今天在整理一个网站的时候,操作系统由于系统自动更新导致一直出现系统蓝屏死机,唉,悲剧了,于是重新安装了系统 windows server 2008 enterprise 32bit。详情:系统安装完成后,重新配置之前那个网站,appache服务配好之后,再配置数据的时候是这样...

weixin_39628271的博客 2673

软件性能调优系列--知识点1

……

一座青山的专栏 718

BACnet/IP BBMD跨网段通信深度解析与最佳实践

本文介绍了在BACnet/IP网络中通过BBMD实现跨子网设备通信的关键配置方法。重点阐述了广播分发表(BDT)中掩码设置的重要性:使用子网掩码(255.255.255.0)会导致路由器拦截广播消息,而必须采用主机掩码(255.255.255.255)才能启用单播隧道机制,使BACnet广播消息封装为可路由的单播UDP包。文章详细说明了BDT条目的正确配置格式、BIP广播地址的作用,并提供了验证步骤,强调在跨网段场景中,正确设置掩码是确保设备发现和通信成功的关键因素。

零一架构师的专栏 1536

智能座舱-语音交互系统

从什么是智能座舱、智能座舱的发展驱动因素、智能座舱的构成要素三个方面梳理我对智能座舱的基础认识之后,为了加深“智能座舱产品入门”课程中语音交互部分知识的理解,我从什么是语音交互、语音交互的底层技术、智能座舱的语音交互等方面,对智能座舱语音交互系统相关的知识进行了梳理与总结。

GUOSA0928的博客 1440

java jvm调优的本质、目的、标准

让一次gc在100ms以内。1)目的:防止OOM>FGC>YGC。

focus-unchanged-thing 541

组合导航、惯导、GNSS、INS、IMU的区别

‌:惯性导航系统(INS)是一种利用安装在运载体上的陀螺仪和加速度计来测定运载体位置的系统。它通过测量物体的加速度和角速度,结合算法计算出物体的位置、速度和姿态‌12。‌。

wynn1123的博客 8052

性能调优的本质、Spark资源使用原理和调优要点分析

引言我们谈大数据性能调优,到底在谈什么,它的本质是什么,以及 Spark 在性能调优部份的要点,这两点让在进入性能调优之前都是一个至关重要的问题,它的本质限制了我们调优到底要达到一个什么样的目标或者说我们是从什么本源上进行调优。希望这篇文章能为读者带出以下的启发:了解大数据性能调优的本质了解 Spark 性能调优要点分析了解 Spark 在资源优化上的一些参数调优了解 Spark 的一些比较高效的...

lzf的博客 902

U-net复现pytorch版本 以及制作自己的数据集并训练

GitHub链接: https://github.com/milesial/Pytorch-UNet 论文链接:

candice5566的博客 3万+

uniapp ios原生插件开发 (framework,cocoapods)

已知UniApp的插件开发方式有两种, 第一种 Xcode Framework的方式,这种方式是官方指定的方式。 这种方式的优点就是简单直接, 但也有不足,比如当插件需要引入一些三方库时,操作起来就不是那么方便。 而使用Cocoapods则可以很方便的引入三方库。 接下来,本文探索使用Cocoapods的方式来进行UniApp插件开发。

Rey的技术博客 9823

软件优化方法介绍

最近,随着嵌入式软件的各种功能和复杂性的增加,构成嵌入式系统的内核和存储器的使用正在迅速增加。嵌入式软件与一般通用软件不同,嵌入式软件系统资源有限。汽车领域的ADAS(高级驾驶辅助系统)就是一个典型的例子。驾驶员、乘客和行人对安全和便利的同时追求产生了各种要求,为了满足这些要求,ADAS系统的S/W复杂性显着增加以满足这些要求。 特别是S/W内部数据处理的运算频率呈爆炸式增长,但由于大量ADAS请求功能集成在基于MCU(Micro Controller Unit)资源有限的ADAS集成控制器中,运算单元控制

Suresoft China的博客 1568

基于龙虾Claw的会议纪要自动提取与重点内容总结办公场景实践

本文介绍如何使用龙虾Claw构建会议纪要自动提取与重点内容总结系统,实现会议内容的智能处理。

一键难忘的博客 253

两晋南北朝·高洋(下)

两晋南北朝·高洋(下) 左直拳 高洋这个人很怪。他经常亲自击鼓,又是唱歌又是跳舞,通宵达旦,达旦通宵地玩个不停。有时穿上花花绿绿的艳丽衣服,敞身露体,脸上涂着粉黛,披头散发,或者打扮得象个胡人,手执利刀,背着弓箭,以百变星君的形象在大街上招摇过市,到处游荡。累了就一屁股坐到地上,甚至直接睡起大觉来,心血来潮的时候,也会突然闯到大臣贵族的家里,随心所好,从不受时间的约束。他喜欢让宦官侍从...

totoxian 142

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

两晋南北朝·高洋(上)

两晋南北朝·高洋(上) 左直拳 高洋很小的时候就显露出与众不同的心机和才干。 有一次,他父亲高欢为了考察几个儿子,就每人给了一团乱丝,看谁最先解开。其他人都东拉西扯,解得满头大汗,惟独高洋拔出配刀,一刀将丝斩断,说:乱的东西就要斩。这是成语“快刀斩乱麻”的出处。 又有一次,高欢让儿子们各自带一队人马出发,然后让手下彭乐披甲伪装成敌人攻击。老大高澄等人皆惊慌失措,不知应对,只有高洋指挥部属还...

yangshen998 136

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

两晋南北朝

两晋南北朝 左直拳 中华文化所谓上下5千年,历史过于丰富,朝代更迭令人眼花缭乱。我比较喜欢历史,对众多朝代的顺序,大体上是了解的,不过有两个例外,一个是两晋南北朝,一个是唐末到宋之间的五代十国,因为太复杂纷乱了,总是搞不清。 2005年我在广州图书馆借了一批柏杨版的资治通鉴看,主要集中在两晋南北朝这个时期,有《华乱五胡》,《祖逖(ti)渡江》,《恒温北伐》,《恒玄篡位闹剧》,《符坚大帝》,好...

totoxian 141

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

[生存志] 第19节 历代大事件概览 南北朝

--南北朝-- 拓拔牛川复代国,更名北魏都盛乐(386) 北魏西燕敌后燕,后燕长子灭西燕(387-394,394) 魏败燕于叁合坡,秃发乌孤建南凉(395,397) 拓拔迁都至平城,北府刘裕破桓玄(398,404) 北燕高云代后燕,匈奴赫连建胡夏(407) 卢循番禺攻秦淮,刘裕义熙行土断(410,411) 南燕后蜀南凉终,刘裕长安灭姚秦(410/413/414,417) 司马德文禅

微笑的彩虹的博客 494

山西省:晋祠

晋祠以其。

喝醉酒的小白 1409

软件优化理论基础以及方法论小结.

就像我其他博文中说的,对于软件的优化除开算法,全部都是为流水线服务的.所以优化的时候要时刻记住一这点.由于优化的东西比较杂,我写的不是很好,所以在文章的最后,我会试着提炼出一些通用性的原则. 由于之前在WPS上写的,所以代码没有用模版来排版,各位看官就将就着看吧..我也只是为了提炼一次知识,真正的优化还是认真看一遍书来的好.   有哪些方法优化软件? 通常有两种方式,一种是通过编译器,另一

Coding Bad 3683

【转载】软件性能测试分析与调优实践之路-性能分析调优思想与调优技术总结

本文主要阐述软件性能测试中的一些调优思想和技术,节选自作者新书《软件性能测试分析与调优实践之路》部分章节归纳。 一、 性能分析与调优思想 1、性能分析调优模型 性能测试除了为获取性能指标外,更多是为了发现性能瓶颈和性能问题,然后对性能问题和瓶颈进行分析和调优,在当今互联网高速发展的时代,性能调优的模型可以归纳总结如下图所示。 系统模型中相关的组件描述如下表所示 组件 描述 网络分发 网络分发是高速发展的互联网...

1302
下一篇: 软件优化技术真经-框架篇
hbffff
博客等级 码龄26年 4粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值