文档章节

怎么提高程序执行效率

 小张zps
发布于 2016/05/12 22:03
字数 637
阅读 3
收藏 0
点赞 2
评论 0

      对于大多学过编程的人来说,“内存”都应该听过吧。在编程世界里,大家基本上都听过这样一句话“大神一般都在玩c,c++”。为什么呢?作为程序猿的我,也是从c语言的“hello world!”开始的。c语言,被很多人定义成程序设计入门级语言。由于它语法简单。去转盘 没很好们很容易的操作内存配合硬件。故而被广泛的用于嵌入式领域,底层处理。直接内存操作---就是C语言最美丽的地方。    这篇文章不针对哪一门特定的语言。理解的角度,在于内存,一个程序生存的地方。
    不知道大家有没有听过这样一个金典的题目:给你两个变量,在不使用第三个变量的前提下,实现两个变量内容的交换。想想,怎么实现呢?

    好!现在我们来分析下题目。程序定义的变量中的值存在什么地方,毫无疑问:内存;变量名存在什么地方:内存。可能你会说,这不是废话吗?变量名对应了一块存储空间,这个空间中存的值不确定。它就像一个房子。

    那么现在的问题就可以转换成;给你两个房间,每个房间存放一些东西,怎么把两个房间中的东西相互交换。相信这个很简单。先把所有的东西放入到一个房间。然后把原本这个房间中东西放入到另一个房间。这样就简单的实现了交换。

     当然程序中没有所谓的搬移,但是有运算符啊!“+“  不就实现了变量的统一,”-“ 不就实现了所谓的区分;你明白了这个简单的例子,也就大概的知道了内存到底是怎么回事了吧!为什么说”内存“是程序的灵魂呢!你可能会说”不是算法才是程序的灵魂吗?“,不可否认。算法的重要地位。但是。算法在操作什么?内存。不过是通过合理的个结构来管理内存。内存的拆分,结合。数据的搬移,内存的复制。等等。

想清楚了,程序也就不在难懂。

    想获得资源,点击此处。搜索C语言。

 

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 4
码字总数 4485
作品 0
成都
【转帖】记住效率是做好测试工作的灵魂

在平常的过程中,经常会听到有的测试人员这样的抱怨: 抱怨1:测试进行到中后期了,可我总觉得测试不充分,总想着再从头回归下才放心。 抱怨2:我每天加班,可还是不能保证测试的进度 抱怨3...

kyzg2211
2016/05/10
150
2
ios 优化 cpu缓存与程序内存分布

今天看了一篇文章,关于CPU Cache的7个示例科普CPU Cache 突然发现原来自己不知道的东西有这么多,翻查了一些资料,学到了好多东西,所以赶紧记下来,以后忘了的时候翻出来看看 作为程序员,...

孙启超
2013/10/14
0
5
FastCgi与PHP-fpm之间的关系

首先,CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者。 web server(比如说nginx)只是内容的分发者。比如,如果请求,那么web server会去文件系统...

vanche
06/26
0
0
提高IIS网站服务器的效率的八种方法 (转载)

作者:未知 请作者速与本人联系 以下是提高IIS 5.0网站服务器的执行效率的八种方法: 1. 启用HTTP的持续作用可以改善15~20%的执行效率。 2. 不启用记录可以改善5~8%的执行效率。 3. 使用 [独...

晨曦之光
2012/03/09
19
0
JIT 即时编译的运作原理

JIT just-in-time,被翻译为即时编译,要理解即时编译我觉得和普通的编译(C,C++等静态语言)相对比便可理解,普通编译可以说是 all before runtime,在你运行程序前你需要提前把程序完全编...

big_cat
2015/12/03
113
0
why在重写equals时还必须重写hashcode方法

首先我们先来看下String类的源码:可以发现String是重写了Object类的equals方法的,并且也重写了hashcode方法 public boolean equals(Object anObject) { if (this == anObject) { return tr...

Vincent-Duan
2016/10/29
5
0
Java多线程模式之流水线模式

流水线 什么是流水线? 在计算机中,对于一条具体的指令执行过程,通常可以分为五个部分:取指令,指令译码,取操作数,运算 (ALU),写结果。 前三步由指令控制器完成,后两步则由运算器完...

vshcxl
2016/12/27
209
0
IOS开发网络第一天之01耗时操作

基础知识: 1.进程:正在运行的应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 2.线程: 1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程) 线程是...

鹿微微鹿
2016/04/25
200
0
MySQL insert性能优化

对于一些数据量较大的系统,面临的问题除了是查询效率低下,还有一个很重要的问题就是插入时间长。我们就有一个业务系统,每天的数据导入需要4-5个钟。这种费时的操作其实是很有风险的,假设...

如风达
2016/06/30
144
0
Socket服务器整体架构概述

Socket服务器主要用于提供高效、稳定的数据处理、消息转发等服务,它直接决定了前台应用程序的性能。我们先从整体上认识一下Socket服务器,Socket服务器从架构上一般分为:网络层、业务逻辑层...

付翔
2013/01/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Win10专业版安装GIT后使用Git Bash闪退解决办法

百度后把过程和最终解决办法记录下来: 百度首先出来的解决办法如下: 来自:https://segmentfault.com/q/1010000012722511?sort=created 重启电脑 重新安装 安装到C盘 尝试网上的教程 \Git...

特拉仔
10分钟前
0
0
设计模式

1.装饰器模式 概念 允许向一个现有的对象添加新的功能,同时又不改变其结构。装饰者可以在所委托被装饰者的行为之前或之后加上自己的行为,以达到特定的目的。 实现 增加一个修饰类包裹原来的...

EasyProgramming
25分钟前
1
0
用python2和opencv进行人脸识别

一、安装cv2 sudo apt-get install python-opencv opencv-data 二、 Haar特征分类器 Haar特征分类器就是一个XML文件,该文件中会描述人体各个部位的Haar特征值。包括人脸、眼睛、嘴唇等等。 ...

wangxuwei
25分钟前
0
0
python模板中循环字典

{% for k,v in user.items %} {{ k}} {{ v}} {% endfor %}

南桥北木
54分钟前
0
0
Java8系列之重新认识HashMap

简介 Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeMap,类继承关系如下图所示: 下面针对各个实现类...

HOT_POT
57分钟前
0
0
获取调用方的className

/** * 获取调用方的class * @return */private static String getInvoke() { StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); S......

iborder
今天
0
0
深入了解一下Redis的内存模型!

一前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分。 我们使用Redis时,会接触Redis的5种对象类型(字符...

Java填坑之路
今天
1
0
从实践出发:微服务布道师告诉你Spring Cloud与Spring Boot他如何选择

背景 随着公司业务量的飞速发展,平台面临的挑战已经远远大于业务,需求量不断增加,技术人员数量增加,面临的复杂度也大大增加。在这个背景下,平台的技术架构也完成了从传统的单体应用到微...

老道士
今天
1
0
大数据学习的各个阶段

第一阶段:Linux课程讲解Linux基础操作,讲的是在命令行下进行文件系统的操作,这是Hadoop学习的基础,后面的所有视频都是基于linux操作的。鉴于很多学员没有linux基础,特增加该内容,保证零linux...

董黎明
今天
0
0
CVE-2013-0077 堆溢出分析

找了很久才发现这个环境比较容易搭建分析... 环境: 系统---Win XP SP3 漏洞程序:QQPlayer 3.7.892.400 出错DLL:quartz.dll 6.5.2600.5512 调试工具:x32db+gflag.exe 过程: 首先gflag设置...

Explorer0
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部