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 . 引论 . 构建一个编译器的相关科学 . 程序设计语言基础 . 一个简单的语法制导翻译器 . 简单表达式的翻译器(源代码示例) . 词法分析 . 生成中间代码 . 词法分析器的实现 ...
随机推荐
- gentoo: startx: drmsetmaster failed: permission denied
今天更新了 xorg-server 之后, startx 就进不了 X了,但是可以用 sudo startx 进入 X,所以感觉很奇怪. 后来终于在 gentoo 官方论坛上面找到答案了. https ...
- spring mvc 文件上传 ajax 异步上传
异常代码: 1.the request doesn't contain a multipart/form-data or multipart/mixed stream, content type he ...
- UVA-714-二分+贪心
题意:K个人复制M本书,每本书有Pi页,要求每个人都能分到至少一本书,如果分到多本书籍,分到的书籍编号是连续的,并且K个人里面分到的书籍总页数最大的那个人总数最小. 如果有多组解,保证 K1 < ...
- linux 考试2
- redistemplate优雅地操作redis redis 工具类
参考:https://www.cnblogs.com/superfj/p/9232482.html redis 工具类 package com.service; import org.springfr ...
- docker tomcat镜像制作
推荐使用dockerfile(本文直接拉取tomcat需要进入容器自行安装vim):docker利用Dockerfile来制作镜像 1.查找Docker Hub上的tomcat镜像 [root@loc ...
- os sys 模块
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.chdi ...
- H5视频推流方案
导语 随着直播平台爆发式增长,直播平台从 PC 端转战移动端,紧跟着直播的潮流,自己学习实现了一套简单的 H5 视频推流的解决方案,下面就给小伙伴们分享一下自己学习过程中的经验. 环境部署 1. 配置 ...
- shell脚本判断执行用户
在脚本中,判断执行者是否为root. 判断方法1, #!/bin/bash if [ `whoami` != "root" ];then echo " only root ...
- NETIF_F_LLTX 的属性
在bond初始化的时候,我们可以看到如下属性: /* don't acquire bond device's netif_tx_lock when transmitting */ bond_d ...