
.net 理论
瑞雪骄阳
这个作者很懒,什么都没留下…
展开
-
浅谈.net 内存泄露和内存溢出
一直以来都对内存泄露和内存溢出理解的不是很深刻。在网上看到了几篇文章,于是整理了一下自己对内存泄露和内存溢出的理解。一.概念内存溢出:指程序在运行的过程中,程序对内存的需求超过了超过了计算机分配给程序的内存,从而造成“Out of memory”之类的错误,使程序不能正常运行。造成内存溢出有几种情况:1.计算机本身的内存小,当同时运行多个软件时,计算机得内存不够用从而造成内存溢出。原创 2012-08-16 13:38:48 · 31827 阅读 · 1 评论 -
网页缓存的分析
在网上看了几篇关于网页客户端缓存和服务器端缓存的文章,觉得越看越矛盾,越看越迷糊,于是决定自己分析一下。 我们都知道对于一个网站,如果利用好客户端缓存和服务器缓存会很大的提供网站的性能。那我们先分析一下客户端缓存和服务器缓存是如何工作的。关于网页的缓存有以下几种设置方法:1.在客户端的浏览器可以设置(IE)2.在服务器的iis中设置3.可以在网页的页面中设置原创 2012-08-17 19:16:35 · 896 阅读 · 0 评论 -
大并发大数据量请求的处理方法
大并发大数据量请求一般会分为几种情况:1.大量的用户同时对系统的不同功能页面进行查找,更新操作2.大量的用户同时对系统的同一个页面,同一个表的大数据量进行查询操作3.大量的用户同时对系统的同一个页面,同一个表进行更新操作 对于第一种情况一般处理方法如下:一。对服务器层面的处理1. 调整IIS 7应用程序池队列长度由原来的默认1000改为65535。IIS Man原创 2012-07-18 09:45:54 · 28562 阅读 · 1 评论 -
C# 事务学习
一.数据库事务的ACID属性 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性: 原子性 事务必须是原子工作单元;对于其数据修改,要原创 2007-01-22 12:02:00 · 2195 阅读 · 0 评论 -
ADO.net 的连接池
MSDN中关于数据库连接池的介绍如下:连接到数据库服务器通常由几个需要很长时间的步骤组成。 必须建立物理通道(例如套接字或命名管道),必须与服务器进行初次握手,必须分析连接字符串信息,必须由服务器对连接进行身份验证,必须运行检查以便在当前事务中登记,等等。实际上,大多数应用程序仅使用一个或几个不同的连接配置。 这意味着在执行应用程序期间,许多相同的连接将反复地打开和原创 2013-11-01 10:37:23 · 837 阅读 · 0 评论 -
.net大型分布式电子商务架构说明
背景构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便于运维及监控。 架构演变 基础框架剥离 -> 分库分表 -> 基础服务建设 -> 私有云建设 ->分布式操作系统 基础框架 整个公司无论有多少项目,需要沉淀最基础的框架,转载 2015-10-29 10:03:43 · 1972 阅读 · 0 评论 -
lvs为何不能完全替代DNS轮询
部分同学持这样的观点:1)nginx前端加入lvs和keepalived可以替代“DNS轮询”2)F5能搞定接入层高可用、扩展性、负载均衡,可以替代“DNS轮询”“DNS轮询”究竟是不是过时的技术,是不是可以被其他方案替代,接入层架构技术演进,是本文将要细致讨论的内容。 一、问题域nginx、lvs、keepalived、f5、DNS轮询,每每提到这些技术,往往讨论转载 2016-09-20 15:19:22 · 3266 阅读 · 1 评论 -
.Net内存管理机制详解
以前对.net 的内存机制有点了解,但了解的不是特别详细。看到一篇博客,顿时明白很多。 引言作为一个.NET程序员,我们知道托管代码的内存管理是自动的。.NET可以保证我们的托管程序在结束时全部释放,这为我们编程人员省去了不少麻烦,我们可以连想都不想怎么去管理内存,反正.NET自己会保证一切。好吧,有道理,有一定的道理。问题是,当我们用到非托管资源时.NET就不能自动管理了。这是因转载 2012-08-09 15:14:23 · 2604 阅读 · 0 评论 -
查找算法
1.顺序查找算法 算法描述:顺序比较即可。 平均查找长度 (n+1)/2 算法实现static int SeqSearch(int[] arr, int sValue){ for (int index = 0; index < arr.Length ; index++) { if (arr[index]原创 2012-08-08 17:05:12 · 599 阅读 · 0 评论 -
学习单点登录的实现
SSO英文全称Single Sign On,单点登陆是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。SSO技术实现机制 当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身原创 2010-04-01 17:45:00 · 882 阅读 · 0 评论 -
.net中的序列化和反序列化
所谓温故而知新,现在重新学习一下序列化和反序列化,以求有更深一步的理解。一、为什么要使用序列化?最重要的两个原因是:将对象的状态保存在存储媒体中以便可以在以后重新创建出完全相同的副本;按值将对象从一个应用程序域发送至另一个应用程序域。例如,序列化可用于在 ASP.NET 中保存会话状态,以及将对象复制到 Windows 窗体的剪贴板中。它还可用于按值将对象从一个应用程序域远程传递至另一个应原创 2007-05-29 17:14:00 · 1152 阅读 · 0 评论 -
Http请求处理流程
当服务器接收到一个 Http请求的时候,IIS 首先需要决定如何去处理这个请求(NOTE:服务器处理一个.htm页面和一个.aspx页面肯定是不一样的么)。那IIS依据什么去处理呢?―― 根据文件的后缀名。服务器获取所请求的页面(NOTE:也可以是文件,比如 jimmy.jpg)的后缀名以后,接下来会在服务器端寻找可以处理这类后缀名的应用程序,如果IIS找不到可以处理此类文件的应用程序,并且这转载 2012-07-04 15:41:41 · 808 阅读 · 0 评论 -
Http Handler 介绍
很多Asp.Net开发人员都有过Asp的背景,以至于我们在开发程序的时候,通常都是在“页面级”上思考,也就是说我们现在正在做的这个页面应该有什么样的功能,是进行一个问卷调查还是一个数据库查询等等。而很少在“请求级”思考,考虑有没有办法来通过编码的方式来操控一个Http请求。实际上,Framework提供了一系列的接口和类,允许你对于Http请求进行编程,而实现这一操作的一个主要的接口,就是 I转载 2012-07-04 16:03:08 · 576 阅读 · 0 评论 -
HttpModule 介绍
一般来说,我们可以将Asp.Net中的事件分成三个级别,最顶层是 应用程序级事件、其次是页面级事件、最下面是控件级事件,事件的触发分别与 应用程序周期、页面周期、控件周期紧密相关。而 Http Module 的作用是与应用程序事件 密切相关的。我们通过Http Module在Http请求管道(Pipeline)中注册期望对应用程序事件做出反应的方法,在相应的事件触发的时候(比如说BeginRe转载 2012-07-04 16:17:44 · 1021 阅读 · 0 评论 -
学习lock的使用
lock 关键字将语句块标记为临界区,方法是获取给定对象的互斥锁,执行语句,然后释放该锁。lock 确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果其他线程试图进入锁定的代码,则它将一直等待(即被阻止),直到该对象被释放。看下面的代码进行说明。private static object obj = new object()lock (obj){ //....原创 2010-06-28 17:36:00 · 781 阅读 · 0 评论 -
海量查询的优化方法
1)数据库选择:现在的数据库工具厂家比较多,对海量数据的处理对所使用的数据库工具要求比较高,一般使用Oracle或者DB2,微软的SQL Server2005性能也不错。另外在BI领域:数据库,数据仓库,多维数据库,数据挖掘等相关工具也要进行选择,象好的ELT工具和好的OLAP工具都十分必要,例如Informatic,Eassbase等。笔者在实际数据分析项目中,对每天6000万条的日志数据进转载 2012-07-18 10:35:54 · 1703 阅读 · 0 评论 -
算法时间复杂度的计算
很长时间都没有学习算法了,在大学里学的关于算法的一些基本概念都忘了。现在来重新复习一下。算法时间复杂度的计算步骤:1.找出算法中的基本语句;算法中执行次数最多的那条语句就是基本语句,通常是最内层循环的循环体。2.计算基本语句的执行次数的数量级;只需计算基本语句执行次数的数量级,这就意味着只要保证基本语句执行次数的函数中的最高次幂正确即可,可以忽略所有低次幂和最高次幂的系数。这样转载 2012-08-08 16:34:56 · 5638 阅读 · 1 评论 -
学习SQLSerVer中的锁
当数据库的并发访问量很大时,需要对数据库的锁的概念有一个清晰的了解,这样就能很好的处理数据库的大并发访问的问题1.并发引起的问题 ①脏读:包含未提交数据的读取。例如,事务1更改了某行。事务2在事务1 提交更改之前读取已更改的行。如果事务1回滚更改,则事务2便读取了逻辑上从未存在过的行。 ②不可重复读取:当某个事务不止一次读取同一行,并且一个单独的事务在两次(或多次)读取之间修改原创 2010-03-18 13:03:00 · 1068 阅读 · 1 评论