- 博客(14)
- 资源 (1)
- 收藏
- 关注
原创 在工厂当开发的日子-Day1
在工厂摸鱼的第一天 又是新的一天 哦豁儿~ 每天都从1.5*0.9的大床起来 快马加鞭的来都工位开始新一天的摸鱼。 今天早上没吃早餐,饿死人。然后又是做昨天剩下来的查询优化问题,然鹅 并不会… 改了下 不知道行不行,难过(ಥ﹏ಥ) 下午继续摸鱼,但是莫名其妙被拉去开了个会。。 然后身上就多了几个需求,让我摸鱼大业暂停了一波。 每天晚上加班两小时。。。 摸鱼必须的 ...
2020-08-12 20:28:20 832 6
原创 C#性能优化杂谈
C#性能优化总结 1. C#语言方面 1.1 垃圾回收 垃圾回收解放了手工管理对象的工作,提高了程序的健壮性,但副作用就是程序代码可能对于对象创建变得随意。 1.1.1 避免不必要的对象创建 由于垃圾回收的代价较高,所以C#程序开发要遵循的一个基本原则就是避免不必要的对象创建。以下列举一些常见的情形。 1.1.1.1 避免循环创建对象 ★ 如果对象并不会随每次循环而改变状态,那么在循环中反复创建对象将带来性能损耗。高效的做法是将对象提到循环外面创建。 1.1.1.2 在需要逻辑分支中创.
2020-07-28 20:30:03 244
原创 C# 缓存的学习记录
1. 缓存是什么,各级缓存 2. 本地缓存原理和实现 3. 缓存应用和缓存更新 缓存:为了快速获取结果,在第一次获取数据后存起来,下次直接使用 缓存一般用在哪里? 1. 会重复的请求 2. 数据相对稳定 3. 耗时/耗资源 4. 体积不大 配置文件;菜单-权限;省市区;类别数据; 热搜;公告;技能/属性;数据字典; 分页(只要数据不是经常变) 如果一个数据缓存一次,能够被有效查询4次,那这个缓存就是值得的(大型系统的时候,为了性能,为了压力,需要更多的缓存) 缓存本身是共享的.
2020-07-10 19:35:27 210
原创 死锁产生的原因与解决方式帮助
其实所有的死锁最深层的原因就是一个:资源竞争 表现一: 一个用户A访问表A(锁住了表A),然后又访问表B 另一个用户B访问表B(锁住了表B),然后企图访问表A 这时用户A由于用户B已经锁住表B,它必须等待用户B释放表B,才能继续,好了他老人家就只好老老实实在这等了 同样用户B要等用户A释放表A才能继续这就死锁了 解决方法: 这种死锁是由于你的程序的BUG产生的,除了调整你的程序的逻辑别无他法 仔细分析你程序的逻辑, 1:尽量避免同时锁定两个资源 ...
2020-07-10 19:31:28 169
原创 C# 单例设计模式学习记录
单例模式:把对象的创建权限关闭,提供一个公开的静态方法,起到对象重用 意义: 保证一个类仅有一个实例,并提供一个访问它的全局访问点 适用于: 数据临时存储的地方静态字典/数据库连接池/线程池/IOC的容器实例/配置文件信息保存 单例模式:保证进程当中,某个类只有一个实例 问题是怎样保证?怎么样强制保证呢? 单例就是为了只有一个实例,比如数据临时存储的地方静态字典/数据库连接池/线程池/IOC的容器实例/配置文件信息保存。 而不是用来解决线程冲突的。 单例模式和平台实例的区别: ..
2020-05-09 13:48:20 166
原创 Unity实现AOP 初步学习
OOP:一切皆对象,对象交互组成功能,功能叠加组成模块,模块叠加组成系统 类--砖头 系统--房子 类--细胞 系统--人 面向对象是非常适合做大型系统的,但是它应对需求变化扩展的时候会比较困难; 面向对象是静态的:任何需求的细微变化,都有可能导致比较大的影响。 设计模式:用来设计出灵活、可扩展、可重用的架构 但是只能解决部分问题,因为设计模式都是在折腾抽象/类,这样就注定了,设计模式永...
2020-05-08 13:24:30 671
原创 设计模式之六大原则 初步学习
设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):依赖倒置原则 设计模式六大原则(4):接口隔离原则 设计模式六大原则(5):迪米特法则 设计模式六大原则(6):开闭原则 设计模式六大原则(1):单一职责原则 定义:不要存在多与一个导致类变更的原因,即一个类只负责一项职责。 因为当由于职责p1需求发生改变而需求修改类T时,可能...
2020-05-06 22:41:44 209
原创 RESTful WebApi初步学习
1 RESTful:架构风格,就是以资源为视角,来描述服务的。 因为移动互联网时代来临:用json/xml来描述,http方法 统一了数据操作 它的目标是用来找数据,而不是看重接口。 表现层的状态转换;资源;统一接口;URI;无状态; 资源:实体就是资源,json/xml 数据流 统一接口:CRUD,是通过http的method体现 get,post.put/patch.delete ...
2020-05-04 14:44:06 454
原创 Async/Await 使用
Async/Await 是语法糖,本身就跟编译器提供的功能 如果需要使用请保证项目为.net 4.5 以上 Async/Await Task - 配合Task使用 任何一个方法,都可以增加Async关键字,但是如果只有Async没有Await的话是没有意义的,只有Await那就会报错。 一般Async和Await是成对出现的,配合Task使用,await + Task。 一般,要么...
2020-05-04 14:42:14 182
原创 Task初步学习和应用
Task - 多线程 基于TreedPool 什么时候用多线程呢? 任务能够并发运行,使用后可以提升速度,优化体验 创建形式: 1、Task.Run(()=>this.方法名(参数字)); 2、TaskFactory taskFactory = Task.Factory; taskFactory.StartNew(()=>this.方法名(参数)); 3、new Task...
2020-05-04 14:40:28 324
原创 多线程基础大纲
1、进程-线程-多线程,同步和异步 2、委托启动异步调用 3、多线程特点:不卡主线程、速度卡、无序性 4、异步的回调和状态参数 5、异步等待三种方式 6、异步返回值 进程 线程 多线程 计算机概念 进程:一个程序运行时,占用的全部计算资源的总和 线程:程序执行流的最小单位;任何操作都是由线程完成的; 线程是依托于进程存在的,一个进程可以包含多个线程; 多线程:多个执行流同...
2020-05-04 14:39:09 162
原创 ThreadPool - 线程池学习
1. 线程池的概念: 线程池就是首先创建一些线程,它们的集合称为线程池。使用线程池可以很好地提高性能,线程池在系统启动时即创建大量空闲的线程,程序将一个任务传给线程池,线程池就会启动一条线程来执行这个任务,执行结束以后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待执行下一个任务。 2. 线程池的工作机制 2.1 在线程池的编程模式下,任务是提...
2020-03-22 22:40:52 190
原创 串口调试工具-学习版
//前提需要 //需要一个 serialPort 工具 可在vs自带的工具栏中获得 //源代码加串口工具地址: //链接:https://pan.baidu.com/s/1YbfvdXEmfsJX87D-Jxljyg 提取码:d32x //记录用户打开的串口号 可改为泛型模式 string serialPortName; //一般电脑是没有串口号的,所以要用个软件创建虚拟串口...
2020-03-22 17:14:58 657
原创 论序列化与反序列化
最近学习了一波序列化,想和大家分享一下,文章有点新手,不够深度请大家见谅 首先给大家介绍一下序列化是用来干什么的,他为什么出现序列化这种技术说到底其实就是把临时数据保存在电脑上。大家都知道对于程序而言对象是一种稍纵即逝的数据,不仅仅是程序重启、电脑重启,就连内部函数的变化也有可能导致对象的消失,但是总有一些对象是大家不想让其随意消失的并且想在下一次开启程序的时候进行加载,在这种环境下-序列化...
2018-04-19 21:52:10 148
设计模式六大原则.doc
2020-05-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人