.NET与C#基础
gnimgnot
这个作者很懒,什么都没留下…
展开
-
.NET 值类型的性能
深入理解值类型:值类型的内存布局更简单,但是它引入一些限制和装箱,装箱是一个代价高昂的过程。用值类型的主要原因是其内存密度高而且开销少。下面还是以简单的Point2D来讨论:public struct Point2D{public int X;public int Y;}Point2D实例以X=5, Y=7初始化的内存布局就像下图一样,没有额外的开销:少数罕见的翻译 2012-12-26 11:22:22 · 1186 阅读 · 2 评论 -
C#性能分析优化系列文章索引
内容翻译自《Pro.NetPerformance》.NET 值类型的性能.NET 引用类型的性能.NET性能要素.NET 性能测试工具 -- 性能计数器.NET 性能测试工具 -- 事件跟踪器(ETW)C#中的线程 -- 线程入门 C#中的线程 -- 同步基础(线程状态,同步上下文)C#中的线程 -- 同步基础(同步本质,线程翻译 2012-12-26 12:11:44 · 1686 阅读 · 0 评论 -
CLR的垃圾回收(GC)机制(1)
为什么垃圾回收?垃圾回收可以让开发人员从内存管理的麻烦中解放出来,在垃圾回收的环境下,内存申请与对象的创建相关联起来了,当这些对象不再有引用时,占用的内存会被释放。垃圾回收器也提供了析构的接口,用来管理不在托管堆上的非托管资源,开发者可以自定义如何在不需要这些资源时的处理方式,两个主要的目标是:1,去掉内存管理的bug和陷阱。2,管理内存的效率等于或高于手动管理的效率。当前市面上的翻译 2013-01-30 09:27:05 · 1908 阅读 · 1 评论 -
C#中的线程 -- 同步基础(线程状态,同步上下文)
内容预告:线程入门(线程概念,创建线程)同步基础(同步本质,线程安全,线程中断,线程状态,同步上下文)使用线程(后台任务,线程池,读写锁,异步代理,定时器,本地存储)高级话题(非阻塞线程,扶起和恢复)线程状态:可以通过ThreadState查看线程的状态。关于线程的状态,有三层意思: 运行、阻塞、终止。如上图所示 前台、后台(ThreadState.Ba翻译 2012-12-26 12:07:33 · 3759 阅读 · 0 评论 -
.NET性能要素
一、性能衡量要素CPU使用率(百分比)物理/虚拟内存使用量(KB,MB,GB)缓存命中率(次数,率/每秒)页面错误率(次数,率/每秒)数据库存储时间(率/每秒)内存分配(字节数,对象数,率/每秒)执行时间(字节数,对象数,率/每秒)网络操作量(次数,率/每秒)硬盘操作量(次数,率/每秒)响应时间(毫秒)垃圾回收(次数,率/每秒,花费的时间)异常(次数,率/每秒)启动时间(毫秒)并发冲突 (翻译 2012-12-26 11:22:16 · 918 阅读 · 0 评论 -
.NET 性能测试工具 -- 事件跟踪器(ETW)
内容预告:Windows内置工具(性能计数器)事件跟踪器(WPT,PerfMoniter,PerfView,自定义ETW)时间分析内存分配分析内存使用量分析其他分析Event Tracing for Windows(ETW)可以查看很多内核和CLR的性能数据,如下表所示,有几个工具都是基于ETW开发的,后面会详细介绍:KernelPROC_THREADCre翻译 2012-12-26 11:22:46 · 3498 阅读 · 0 评论 -
.NET 引用类型的性能
一、引子 假如有一个Point2D类表达一个二维空间--点,每个坐标都是一个short类型,整个对象有4个字节。如果存储100万个点,会用多少字节的空间?答案是取决于Point2D是值类型还是引用类型,如果是引用类型,100万个点将会存储100万个引用,这些引用在32位操作系统上就是40M左右,但这些对象本身还要占最少同样的空间,事实上,每个Point2D将会占12个字节的空间,这样算下来总翻译 2012-12-26 11:22:19 · 1384 阅读 · 1 评论 -
通过LDAP验证Active Directory服务
这一周做LDAP做得头都大了。现在终于有点头绪了,记录一下,以备后用。 LDAP是什么?LDAP是轻量级目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.一般用来构建集中的身份验证系统可以减少管理成本,增强安全性,避免数据复制的问题,并提高数据的一致性。ActiveDirectory是什么?Active Direc原创 2012-12-26 11:20:39 · 4445 阅读 · 0 评论 -
利用webservice获取所有手机号归属地
添加一个http://api.showji.com/locating/Mobile.asmx的webservice引用Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->using System;using System.Collections.G原创 2012-12-26 11:20:31 · 860 阅读 · 0 评论 -
C#多线程
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->using System.Threading;//线程方法public void ThreadFunc(){ //do some thing;}//启动线程(传参数)int a=1;Parameteri原创 2012-12-26 11:20:29 · 633 阅读 · 0 评论 -
.NET 性能测试工具 -- 性能计数器
内容预告:Windows内置工具(性能计数器)事件跟踪器时间分析内存分配分析内存使用量分析其他分析性能计数器:直接win+R运行 perfmon.exe 即可打开。可以在以下场景下使用:如果发现有内存泄露,性能计数器可以被用来检查托管还是本地内存分配的问题。Process\Private Bytes可以查看所有进程分配的private内存(包括GC堆)和.NET CLR M翻译 2012-12-26 11:22:43 · 2319 阅读 · 0 评论 -
C#中的线程 -- 线程入门
内容预告:线程入门(线程概念,创建线程)同步基础(同步本质,线程安全,线程中断,线程状态,同步上下文)使用线程(后台任务,线程池,读写锁,异步代理,定时器,本地存储)高级话题(非阻塞线程,扶起和恢复)概览:C#支持通过多线程并行地执行代码,一个线程是独立的执行个体,可以和其他线程同时运行。CLR和操作系统会给C#程序开启一个线程(主线程),可以被用来作为创建多线程的起点,例翻译 2012-12-26 11:22:25 · 1298 阅读 · 0 评论 -
C#中的线程 -- 同步基础(同步本质,线程安全,线程中断)
内容预告:线程入门(线程概念,创建线程)同步基础(同步本质,线程安全,线程中断,线程状态,同步上下文)使用线程(后台任务,线程池,读写锁,异步代理,定时器,本地存储)高级话题(非阻塞线程,扶起和恢复)同步的本质:下面的列表总结了.NET同步线程的工具:阻塞函数:Sleep:阻塞线程一定时间。Join:阻塞另一个线程至本线程完成。加锁结构:lock:保证只有一翻译 2012-12-26 11:22:38 · 1914 阅读 · 0 评论 -
C#-采集百度贴吧内容
http://icuit.cn/bak/Release.rar基本原理是通过Request到html源码然后解析HTML标签。首先用System.Net.WebResponse,System.Net.WebRequest两个方法通过url获取到html的string.然后解析html标签,都说用正则是最合适的做法。但由于学疏才浅,用了第三方的库HtmlAgilityPack.可以像原创 2012-12-26 11:20:36 · 1026 阅读 · 0 评论 -
C# 6.0 新功能Top 10
C# 6.0 新功能Top 10翻译 2014-12-19 13:44:05 · 1590 阅读 · 0 评论