C#之代码优化
1、if和swith:
区别:1、if语句会执行多次判断,增加CPU的消耗,效率较低;switch只判断一次,效率较高
2、if表示的是一个范围,switch表示一个点
2、for和foreach
foreach:每变量一次就会生成一个额外的堆变量,每个变量占4个字节,用完后会销毁掉,GC会增大,因此尽量少用foreach
3、string和stringbuilder
string:会生成一个对象
stringbuilder:只产生一个对象,不会产生大量的 GC
4、内存:
栈:只要是new出来的引用类型和全局变量区,都在堆上;其他的都在栈上;Struct是值类型
堆:只要是new出来的引用类型,都在堆上;
全局变量区:static
代码区:
5、数组
1、线性顺序存储
int[] tmpArr:这种数组在硬盘上的存储是线性顺序存储,在硬盘上产生线性顺序连续的存储空间,读取速度快,赋值效率高
2、线性链式存储:增删效率高
1、list<int> tmpList:
2、ArrayList tmpArrList:能存储值类型,引用类型
效率较低:tmpArrList.Add(3):装箱操作
装箱:将值类型转换为引用类型
int tmpInt=4,object tmpObj =(object)tmpInt,int temptwo=(int)tmpObj
拆箱:从引用类型转换为值类型
3、Dictionary tmpDict:里面存的是键值对
1、是List<>的延伸 tempDict.Add(key,value)
2、可以用两个数组来代替,一个数组存key,一个数组存value,不过要确定长度
6、Oop(面向对象编程):
找对象----->面对对象编程(拆)----->框架的思想(标准化流程)------>工具开发
1.继承:
类:一个问题一个类
继承:子类实例化的时候,先调用父类的构造函数,然后才调用子类里的构造函数,就是分配了两块内存(父类的内存和子类的内存),
在析构的时候,先析构父类,再析构子类
多态:父类的指针指向子类,而调用子类的方法
Parent tmpParent = new Son();tmpParent.Update();调用的是子类里面的Update的方法
内存的角度分析:父类中是virtual void Update 子类里是override void Update
虚函数表:
只要是带virtual的这种类,系统就会自动分配一个虚函数表的结构(Key(函数Update)和Value(函数Update的地址)的格式)
子类调用方法的时候,指针将父类的方法覆盖了
7、ref
表示参数的地址和传进的变量地址一致
C#之代码优化的更多相关文章
- PHP代码优化
1 代码优化 1 尽量静态化 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍. 当然了,这个测试方法需要在十万级以上次执行,效果才明显. 其实静态方法和 ...
- 跟Unity3D学代码优化
今天我们来聊聊如何跟Unity学代码优化,准确地说,是通过学习Unity的IL2CPP技术的优化策略,应用到我们的日常逻辑开发中. 做过Unity开发的同学想必对IL2CPP都很清楚,简单地说,IL2 ...
- 记录一次bug解决过程:else未补全导致数据泄露和代码优化
一.总结 快捷键ctrl + alt + 四个方向键 --> 倒置屏幕 未补全else逻辑,倒置查询数据泄露 空指针是最容易犯的错误,数据的空指针,可以普遍采用三目运算符来解决 SVN冲突解决关 ...
- 【Java】记录一次代码优化
前不久的项目时间紧张,为了尽快完成原型开发,写了一段效率相当低的代码. 最近几天闲下来,主动把之前的代码优化了一下:) 标签:Java.Mybatis.MySQL 概况:本地系统从另外一个系统得到 ...
- Java代码优化(长期更新)
前言 2016年3月修改,结合自己的工作和平时学习的体验重新谈一下为什么要进行代码优化.在修改之前,我的说法是这样的: 就像鲸鱼吃虾米一样,也许吃一个两个虾米对于鲸鱼来说作用不大,但是吃的虾米多了,鲸 ...
- 微信扫描打开APP下载链接提示代码优化
上一次我发了一篇文章叫“微信打开网址添加在浏览器中打开提示”,里面我发出来了三个代码,分别是纯JS.js+html.jQuery+HTML代码.今天来一个简化版带可以关闭的按钮操作.使用的是纯JS+H ...
- 微信扫描打开APP下载链接提示代码优化(转)
上一次我发了一篇文章叫“微信打开网址添加在浏览器中打开提示”,里面我发出来了三个代码,分别是纯JS.js+html.jQuery+HTML代码.今天来一个简化版带可以关闭的按钮操作.使用的是纯JS+H ...
- [转]SqlSever2005 一千万条以上记录分页数据库优化经验总结【索引优化 + 代码优化】一周搞定
对普通开发人员来说经常能接触到上千万条数据优化的机会也不是很多,这里还是要感 谢公司提供了这样的一个环境,而且公司让我来做优化工作.当数据库中的记录不超过10万条时,很难分辨出开发人员的水平有多高,当 ...
- GitHub 上一份很受欢迎的前端代码优化指南
http://segmentfault.com/a/1190000002587334?utm_source=weekly&utm_medium=email&utm_campaign=e ...
- Compiler Theory(编译原理)、词法/语法/AST/中间代码优化在Webshell检测上的应用
catalog . 引论 . 构建一个编译器的相关科学 . 程序设计语言基础 . 一个简单的语法制导翻译器 . 简单表达式的翻译器(源代码示例) . 词法分析 . 生成中间代码 . 词法分析器的实现 ...
随机推荐
- Debug版本正常运行,Release版本编译通过但运行崩溃
解决这个问题之前,第一个想的是Debug版本和Release版本有什么区别 Debug版: 经过编译器编译出的项目.exe文件大,而且生成的二进制命令没有经过编译器的优化.项目中包含着丰富的调试信息, ...
- vmware三种网络模式:桥接模式|仅主机|NAT模式
VMware 网络模式 1. Bridged(桥接)桥接模式下,宿主机物理网卡(主机网卡)和虚拟网卡通过 VMnet0 虚拟交换机进行桥接,物理网卡和虚拟网卡在拓扑图上处于同等地位,物理网卡和虚拟网卡 ...
- CPU UsageTimes Profile (cpu=times)
HPROF工具能搜集CPU使用信息通过注入代码到每个方法进入点和退出点.因此能够统计方法真实调用次数和花费的时间. 它使用BCI(Byte Code Injection),所以比cpu=samples ...
- 27.Docker集群部署
对于scrapy的部署方式 1.Scrapyd 安装扩展组件,远程控制scrapy任务,包括部署源代码,启动任务,监听任务.scrapy-client .scrapyd api 协助完成部署和监听操作 ...
- python学习笔记_week9
一.paramiko模块 SSHClient,用于连接远程服务器并执行基本命令 基于用户名密码连接: ssh执行命令:stdin,stdout,sterr:标准输入.输出.错误 import para ...
- ant 小结
ant 的配置文件是xml 格式的. 其xml根元素是 project project元素下面有 property path env target filelist patternset 其中 tar ...
- scrapy爬行乌云网公开漏洞程序的分析
# -*- coding: utf-8 -*- from datetime import datetime import pymongo import scrapy from wooyun.items ...
- django 无法生成表
1.删除该APP下migration下的文件,只留init文件即可 2.删除表django_migration的关于该app的所有记录 3.makemigrations,migrate
- VirtualBox安装增强工具方法
1.http://blog.csdn.net/wuliowen/article/details/71541561 2.https://segmentfault.com/a/11900000062335 ...
- virtual 初探
两种代码方式: class person { public: void f() { cout << "person.f()" << endl; } }; c ...