.NET 之 有效预防.NET应用程序OOM
摘要:大部分的内存溢出(及内存泄漏)都和不好的开发习惯有直接关系,以下几个方式可以有效预防OOM。 一、批量和分页 每个合格的coder对数据的处理,必须要有分页或批量多次的意识。大数据量的读取或查询结果集是内存占用大户,是系统性能下降的直接原因之一。 在典型的互联网web应用中,数据量较大且高并发的情况
阅读全文
posted @
2016-08-13 15:40
Now,DayBreak
阅读(837)
推荐(0) 编辑
.NET 之 垃圾回收机制GC
摘要:一、GC的必要性 1、应用程序对资源操作,通常简单分为以下几个步骤:为对应的资源分配内存 → 初始化内存 → 使用资源 → 清理资源 → 释放内存。 2、应用程序对资源(内存使用)管理的方式,常见的一般有如下几种: [1] 手动管理:C,C++ [2] 计数管理:COM [3] 自动管理:.NET,
阅读全文
posted @
2016-08-13 14:35
Now,DayBreak
阅读(10498)
推荐(3) 编辑
.Net Framemwork 之 值类型和引用类型的存储
摘要:C#把数据类型分为两种:值类型 和 引用类型。值类型存储在堆栈中,而引用类型存储在托管堆上。 一、值类型和引用类型变量的存储 首先,变量是存储信息的基本单元,而对于计算机内部来说,变量就相当于一块内存空间。 C#中的变量数据类型有两种: [1] 值类型:简单类型、结构类型、枚举类型 [2] 引用类型
阅读全文
posted @
2016-08-13 13:32
Now,DayBreak
阅读(925)
推荐(0) 编辑
.Net Framework 之 托管模块与程序集的关系
摘要:一、基本概念: --托管模块:一个标准的32的可移植执行体(PE32)文件或一个标准的64位可移植执行体(PE32+)文件。由用支持CLR的任何一种语言创建的源代码文件,再经过相应的编译器检查语法和分析源代码,编译生成。如下: --程序集:由一或者多个模块/资源文件的逻辑性组合。程序集是重用、安全性
阅读全文
posted @
2016-08-13 13:30
Now,DayBreak
阅读(813)
推荐(0) 编辑
.NET Framwork 之 源代码编译成托管代码托管代码合并成程序集
摘要:我们都知道,C#程序需要在 .NET Framework 的环境中运行。 一、程序运行所需的三个关键 1、IL(中间语言):编译器编译源代码时生成的代码。 2、 Framework类库(Framework Class Library,FCL):FCL是一组DLL程序集的统称,其中包含数千个类型定义和
阅读全文
posted @
2016-08-13 12:49
Now,DayBreak
阅读(536)
推荐(0) 编辑
.NET Framwork 之 托管代码的执行过程
摘要:源代码代码第一次编译形成IL中间语言的托管代码,在运行时被Class Loader装载后进行JIT第二次编译形成托管的本地代码。在执行过程中,它会不断地检查当前我们执行的代码的安全性和规范性。 Class Loader在装载可执行程序exe或者动态链接库dll的时候,它不是把所有的exe和dll当中
阅读全文
posted @
2016-08-13 12:37
Now,DayBreak
阅读(428)
推荐(0) 编辑
.Net Framework 之 托管代码和非托管代码的区别
摘要:一、什么是托管代码(managed code)? 托管代码:是微软的中间语言(IL),即微软中间语言MSIL(Microsoft Interspace Language)。 “ 源代码→机器码 ”运行分为两个阶段: 1 源代码 → 编译(csc.exe为C#编译器) → 托管代码(即IL),(所以源
阅读全文
posted @
2016-08-13 10:04
Now,DayBreak
阅读(628)
推荐(0) 编辑
.Net Framework 之 框架图
摘要:.Net Framework框架图,如下图: 它表明了这么一种编写软件的方式或者说表明了.Net平台下开发软件的思想和规范。 .Net Framework框架实际只包含两部分: 1、公共语言运行时(CLR: Common Language Runtime) ; 2、框架类库(FCL: Framewo
阅读全文
posted @
2016-08-12 18:13
Now,DayBreak
阅读(1846)
推荐(0) 编辑