标签分类
当前位置:首页 > 程序设计电子书 > .NET电子书网盘下载
.NET性能优化 .NET性能优化
ksn_c

ksn_c 提供上传

资源
16
粉丝
27
喜欢
215
评论
11

    .NET性能优化 PDF 全书影印版

    .NET电子书
    • 发布时间:

    给大家带来的一篇关于.NET相关的电子书资源,介绍了关于.NET、性能优化方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小183.3 MB,萨沙·戈德斯汀编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.6,更多相关的学习资源可以参阅 程序设计电子书、等栏目。

  • .NET性能优化 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1UbEHBDK0USRV0zThOqdv7A
  • 分享码:23l1
  • .NET性能优化 PDF

    这书能够协助你深入挖掘优化算法和运用的发展潜力,防止普遍圈套,提升程序流程特性,充分发挥核心竞争力,减少运作成本费,提升客户满意度。 这书根据详细介绍很多的分析器和量度专用工具来具体指导用户开展特性量度,并解读了电脑操作系统和CLR是怎样以出乎意料的方法来危害程序流程特性的,另外还根据可工作中的实例和真正实例来演试特性改善。 根据阅读文章这书,用户能够学得: * 寻找并精准定位短板,以得到zui大的特性实际效果; * 应用垃圾分类回收器高效率管理方法运行内存; * 更深层次地了解最底层电脑操作系统以及特性特性,进而更高效率地程序编写; * 根据并行处理化、缓存文件、微提升和很多别的的技术性来提高手机应用程序的特性。 这书包括很多C#编码实例和方法,能够协助用户灵活运用程序流程中每一寸将会的性能增加,如减少运行内存占有、相同化CPU应用,降低互联网和硬盘的I/O实际操作等。这书将会更改你对.NET软件开发的思索方法。这书详尽表述了危害手机应用程序特性的Windows、CLR和物理学硬件配置的构造,并且为用户出示了考量编码怎样单独于外界要素实行实际操作的专业知识和专用工具。书中出示了很多的C#编码实例和方法,将协助用户zui大限度地提升优化算法和手机应用程序的特性,提升本人核心竞争力,应用更低的成本费获得大量的客户。 这书共11章,D1章和D2章关心特性的量度指标值及特性测评;第3章和第4章则深层次CLR內部,致力于种类与CLR垃圾分类回收的內部保持;第5~8章及D11章探讨.NET架构中的好多个特殊的层面,及其CLR出示的几类能用来开展特性提升的方式;第9章对复杂性基础理论和优化算法开展了简易的试着;D10章则包括了某些单独话题讨论,包含开机时间提升、出现异常及.NET反射面等。 这书合适早已有着必须C#語言和.NET架构的代码,对有关定义比较了解的中gao级程序猿阅读文章学习培训。

    目录

    • 第1章 性能指标 1
    • 1.1 性能目标 1
    • 1.2 性能指标 3
    • 1.3 小结 4
    • 第 2章 性能度量 5
    • 2.1 性能度量方式 5
    • 2.2 Windows内置工具 5
    • 2.2.1 性能计数器 6
    • 2.2.2 Windows事件追踪 10
    • 2.3 时间分析器 20
    • 2.3.1 Visual Studio采样分析器 20
    • 2.3.2 Visual Studio检测分析器 24
    • 2.3.3 时间分析器的gao级用法 25
    • 2.4 内存分配分析器 27
    • 2.4.1 Visual Studio内存分配
    • 分析器 27
    • 2.4.2 CLR分析器 29
    • 2.5 内存分析器 34
    • 2.5.1 ANTS Memory Profiler 34
    • 2.5.2 SciTech .NET Memory
    • Profiler 36
    • 2.6 其他分析器 38
    • 2.6.1 数据库和数据访问
    • 分析工具 38
    • 2.6.2 并发分析工具 38
    • 2.6.3 I/O分析工具 40
    • 2.7 微基准测试 41
    • 2.7.1 设计不佳的微基准测试
    • 示例 41
    • 2.7.2 微基准测试指南 44
    • 2.8 小结 45
    • 第3章 类型揭秘 47
    • 3.1 示例 47
    • 3.2 引用类型和值类型在语义上的
    • 区别 48
    • 3.3 存储、分配和销毁 48
    • 3.4 引用类型揭秘 50
    • 3.4.1 方法表 51
    • 3.4.2 调用引用类型实例的方法 55
    • 3.4.3 非虚方法的分发 56
    • 3.4.4 静态方法和接口方法的
    • 分发 58
    • 3.4.5 同步块索引和lock
    • 关键字 59
    • 3.5 值类型揭秘 63
    • 3.6 值类型的虚方法 65
    • 3.7 装箱 65
    • 3.7.1 避免在调用值类型的Equals
    • 方法时产生装箱 67
    • 3.7.2 GetHashCode方法 70
    • 3.8 使用值类型的zui佳实践 72
    • 3.9 小结 72
    • 第4章 垃圾回收 73
    • 4.1 为什么需要垃圾回收 73
    • 4.1.1 空闲列表管理 73
    • 4.1.2 引用计数垃圾回收 74
    • 4.2 追踪垃圾回收 75
    • 4.2.1 标记阶段 76
    • 4.2.2 清理与压缩阶段 80
    • 4.2.3 固定 82
    • 4.3 垃圾回收器的特征 83
    • 4.3.1 垃圾回收时暂停线程 83
    • 4.3.2 在垃圾回收时挂起线程 83
    • 4.3.3 工作站垃圾回收 85
    • 4.3.4 服务器垃圾回收 86
    • 4.3.5 切换垃圾回收特征 87
    • 4.4 代 89
    • 4.4.1 “代”模型的假设 89
    • 4.4.2 .NET中“代”的实现 90
    • 4.4.3 大对象堆 93
    • 4.4.4 跨代引用 94
    • 4.4.5 后台垃圾回收 96
    • 4.5 垃圾回收段和虚拟内存 97
    • 4.6 终结化 100
    • 4.6.1 手动确定性终结化 100
    • 4.6.2 自动的非确定性终结化 100
    • 4.6.3 非确定性终结的缺点 102
    • 4.6.4 Dispose模式 104
    • 4.7 弱引用 106
    • 4.8 使用垃圾回收器 108
    • 4.8.1 System.GC类 108
    • 4.8.2 使用CLR宿主与垃圾
    • 回收器进行交互 111
    • 4.8.3 垃圾回收触发器 111
    • 4.9 垃圾回收性能zui佳实践 112
    • 4.9.1 “代”模型 112
    • 4.9.2 固定 113
    • 4.9.3 终结化 114
    • 4.9.4 其他建议与zui佳实践 114
    • 4.10 小结 117
    • 第5章 集合和泛型 119
    • 5.1 泛型 119
    • 5.1.1 .NET泛型 121
    • 5.1.2 泛型约束 122
    • 5.1.3 CLR泛型的实现 125
    • 5.2 集合 131
    • 5.2.1 并发集合 132
    • 5.2.2 缓存 133
    • 5.3 自定义集合 137
    • 5.3.1 分离集(并查集) 137
    • 5.3.2 跳跃表 138
    • 5.3.3 一次性集合 139
    • 5.4 小结 141
    • 第6章 并发和并行 142
    • 6.1 挑战与所得 142
    • 6.2 从线程到线程池,再到任务 143
    • 6.2.1 任务并行 148
    • 6.2.2 数据并行 153
    • 6.2.3 C# 5异步方法 156
    • 6.2.4 TPL中的gao级模式 159
    • 6.3 同步 160
    • 6.3.1 无锁代码 161
    • 6.3.2 Windows同步机制 165
    • 6.3.3 缓存 167
    • 6.4 通用的GPU计算 168
    • 6.4.1 C AMP简介 169
    • 6.4.2 矩阵相乘 171
    • 6.4.3 多体仿真 171
    • 6.4.4 tile和共享内存 172
    • 6.5 小结 175
    • 第7章 网络、I/O和序列化 176
    • 7.1 I/O基本概念 176
    • 7.1.1 同步与异步I/O 176
    • 7.1.2 I/O完成端口 177
    • 7.1.3 .NET线程池 181
    • 7.1.4 内存复制 181
    • 7.2 分散-聚集I/O 182
    • 7.3 文件I/O 182
    • 7.3.1 缓存提示 183
    • 7.3.2 非缓存I/O 183
    • 7.4 网络I/O 184
    • 7.4.1 网络协议 184
    • 7.4.2 网络套接字 185
    • 7.5 数据序列化与反序列化 186
    • 7.5.1 序列化基准测试 187
    • 7.5.2 数据集(DataSet)
    • 序列化 189
    • 7.6 Windows通信基础类库 189
    • 7.6.1 限流 189
    • 7.6.2 处理模型 190
    • 7.6.3 缓存 191
    • 7.6.4 异步WCF客户端与
    • 服务器 191
    • 7.6.5 绑定 192
    • 7.7 小结 193
    • 第8章 不安全的代码以及互操作 194
    • 8.1 不安全的代码 194
    • 8.1.1 对象固定与垃圾回收
    • 句柄 195
    • 8.1.2 生存期管理 196
    • 8.1.3 分配非托管内存 196
    • 8.1.4 内存池 197
    • 8.2 平台调用 198
    • 8.2.1 PInvoke.net与P/Invoke
    • Interop Assistant软件 199
    • 8.2.2 绑定 200
    • 8.2.3 列集器存根程序 201
    • 8.2.4 原生同构类型 204
    • 8.2.5 列集方向、值类型和引用
    • 类型的列集 205
    • 8.2.6 代码访问安全性 206
    • 8.3 COM互操作性 206
    • 8.3.1 生存期管理 207
    • 8.3.2 单元列集 208
    • 8.3.3 TLB导入与代码访问
    • 安全性 209
    • 8.3.4 无主互操作程序集
    • (NoPIA) 209
    • 8.3.5 异常 210
    • 8.4 C /CLI语言扩展 211
    • 8.4.1 marshal_as辅助库 213
    • 8.4.2 IL代码与原生代码 214
    • 8.5 Windows 8 WinRT互操作 214
    • 8.6 互操作的zui佳实践 215
    • 8.7 小结 215
    • 第9章 算法优化 216
    • 9.1 复杂度的维度 216
    • 9.1.1 大O复杂度 216
    • 9.1.2 主定理 217
    • 9.1.3 图灵机与复杂度分类 218
    • 9.1.4 停机问题 219
    • 9.1.5 NP完全问题 221
    • 9.1.6 记忆与动态规划 221
    • 9.1.7 编辑距离 222
    • 9.1.8 每对顶点间的zui短路径 224
    • 9.2 近似算法 226
    • 9.2.1 旅行商问题 226
    • 9.2.2 zui大割 227
    • 9.3 概率算法 227
    • 9.3.1 概率zui大割 227
    • 9.3.2 费马质数测试 228
    • 9.4 索引与压缩 228
    • 9.4.1 变量的长度编码 228
    • 9.4.2 压缩索引 229
    • 9.5 小结 230
    • 第 10章 性能模式 232
    • 10.1 JIT编译器优化 232
    • 10.1.1 标准的优化方法 232
    • 10.1.2 方法内联 233
    • 10.1.3 消除边界检查 234
    • 10.1.4 尾调用 236
    • 10.1.5 启动性能 238
    • 10.1.6 使用NGen进行JIT预
    • 编译 239
    • 10.1.7 多核后台JIT编译 241
    • 10.2 关于启动性能的其他技巧 243
    • 10.2.1 将强命名程序集置于
    • GAC中 243
    • 10.2.2 防止本机镜像发生地址
    • 重排 243
    • 10.2.3 减少程序集数目 244
    • 10.3 处理器相关的优化 245
    • 10.3.1 单指令多数据流
    • (SIMD) 245
    • 10.3.2 指令级别并行 247
    • 10.4 异常 250
    • 10.5 反射 250
    • 10.6 代码生成 251
    • 10.6.1 直接用源代码生成
    • 代码 251
    • 10.6.2 用动态轻量级代码生成技
    • 术(LCG)生成代码 253
    • 10.7 小结 257
    • 第 11章 Web应用性能 258
    • 11.1 测试Web应用的性能 258
    • 11.1.1 Visual Studio Web性能
    • 测试和压力测试 259
    • 11.1.2 HTTP监控工具 260
    • 11.1.3 分析工具 260
    • 11.2 提高Web服务器的性能 261
    • 11.2.1 缓存公用对象 261
    • 11.2.2 使用异步页面、模块和
    • 控制器 262
    • 11.2.3 创建异步页面 263
    • 11.2.4 创建异步控制器 265
    • 11.3 ASP.NET环境调优 265
    • 11.3.1 关闭ASP.NET跟踪和调试 266
    • 11.3.2 关闭视图状态 267
    • 11.3.3 服务端输出缓存 268
    • 11.3.4 对ASP.NET应用程序进行预编译 269
    • 11.3.5 ASP.NET进程模型调优 270
    • 11.4 配置IIS 271
    • 11.4.1 输出缓存 271
    • 11.4.2 应用程序池配置 273
    • 11.5 网络优化 274
    • 11.5.1 使用HTTP缓存头 274
    • 11.5.2 启用IIS压缩 277
    • 11.5.3 精简与合并 279
    • 11.5.4 使用内容发布网络 (CDN) 280
    • 11.6 对ASP.NET应用程序进行扩容(scaling) 281
    • 11.6.1 向外扩容 281
    • 11.6.2 ASP.NET扩容机制 282
    • 11.6.3 向外扩容的隐患 282
    • 11.7 小结 283

    上一篇:从零开始学架构:照着做,你也能成为架构师  下一篇:HTML5权威指南

    展开 +

    收起 -

    码小辫二维码
     ←点击下载即可登录

    .NET相关电子书
    学习笔记
    网友NO.706994

    jquery插件treegrid树状表格的使用方法详解(.Net平台)

    上一篇介绍了DataTable,这一篇在DT的基础之上再使用jquery的一款插件:treegrid,官网地址:http://maxazan.github.io/jquery-treegrid/ 一、使用treegrid,需要以下支持 jquery.min.js+jquery.treegrid.min.js 二、后端提供树状列表格式的集合数据,借助前端的DT的配置控制,来在页面上输出满足treegrid格式要求的html 前台: @using Model@{ Layout = null; UserInfo userInfo = null; if (ViewData["LoginUser"] != null) { userInfo = ViewData["LoginUser"] as UserInfo; } else { Response.Redirect("/Login/Index"); }}!DOCTYPE htmlhtmlhead meta charset="utf-8" meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" / title用户列表/title link href="~/Content/Scripts/h-ui/css/H-ui.min.css" rel="stylesheet" / link href="~/Content/Scripts/h-ui.admin/css/H-ui.admin.css" rel="stylesheet" / link href="~/Content/Scripts/Hui-iconfont/1.0.8/iconfont.css" rel="stylesheet" / link href="~/Content/Scripts/treegrid/css/jquery.treegrid.css" rel="stylesheet" / style .page-container { padding: 10px; } .operation { background: #EFEEF0; padding: 3px; } .search { background: #EFEEF0; padding: 5px; margin-top: 5px; } .table { margin-top: 10px; } .dataTables_info { margin-left: 5px; } #table1_info { padding: 0; } #table1_length { margin-left: 15px; } /style !--引入脚本解决兼容性(hack技术,必须放入head中)-……

    网友NO.923699

    ASP.NET jQuery 实例16 通过控件CustomValidator验证RadioButtonList

    界面代码: form id="form1" runat="server" div align="center" fieldset table border="0" cellpadding="3" cellspacing="3" tr td 请选择汽车类型: /td /tr tr td asp:RadioButtonList ID="rbCar" runat="server" asp:ListItem Value="1" Text="奔驰汽车"/asp:ListItem asp:ListItem Value="2" Text="宝马汽车"/asp:ListItem asp:ListItem Value="3" Text="奥迪汽车"/asp:ListItem asp:ListItem Value="4" Text="现代汽车"/asp:ListItem asp:ListItem Value="5" Text="丰田汽车"/asp:ListItem /asp:RadioButtonList /td /tr tr td asp:Button ID="btnSubmit" runat="server" Text="提交" / /td /tr /table /fieldset asp:CustomValidator ID="ctvCar" runat="server" Display="Dynamic" ErrorMessage="至少选择一种车!" ForeColor="Red" ClientValidationFunction="rbCar_Validation"/asp:CustomValidator /div /form 脚本代码: head id="Head1" runat="server" titleRecipe16/title script type="text/javascript" src="Scripts/jquery-1.4.1-vsdoc.js"/script script type="text/javascript" function rbCar_Validation(sender, args) { args.IsValid = ($("#rbCar :radio:checked").length 0); } /script /head 显示效果: ……

    网友NO.635501

    使用VUE+iView+.Net Core上传图片的方法示例

    我们直接进入主题,使用VS2017开发工具 首先要创建一个WebApi项目,创建完之后,在wwwroot文件下,创建一个文件夹 名字可以随意起 我这里呢就叫做Upload了 ok !然后我们再创建一个控制器 IndexController 代码如下 要知道上传图片都是通过HTTP去请求,服务端从request中读取 public class PicData { public string Msg { get; set; } } [HttpPost] public async Taskbool InsertPicture([FromServices]IHostingEnvironment environment) { var data = new PicData(); string path = string.Empty; var files = Request.Form.Files; if (files == null || files.Count() = 0) { data.Msg = "请选择上传的文件。"; return false; } //格式限制 var allowType = new string[] {"image/jpg", "image/png", "image/jpeg"}; if (files.Any(c = allowType.Contains(c.ContentType))) { if (files.Sum(c = c.Length) = 1024 * 1024 * 4) { foreach (var file in files) { string strpath = Path.Combine("Upload", DateTime.Now.ToString("MMddHHmmss") + file.FileName); path = Path.Combine(environment.WebRootPath, strpath); using (var stream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite)) { await file.CopyToAsync(stream); } } data.Msg = "上传成功"; return true; } else { data.Msg = "图片过大"; return false; } } else { data.Msg = "图片格式错误"; return false; } } 注意一下这段代码 string strpath = Path.Combine("Upload", DateTime.Now.ToString("MMddHHmmss") + file.FileName); 在wwwroot下创建的文件夹,要将Up……

    网友NO.462301

    如何用jQuery实现ASP.NET GridView折叠伸展效果

    今天做静态页面时有一个需求,就是页面上有一组两个选项的单选按钮和一个有6行的列表(该列表用Table标签实现,不是DIV),当选择单选按钮的选项一时,列表的前三条信息显示后三条信息隐藏,当选择单选按钮的选项二时,列表的前三条信息隐藏后三条信息显示。那么就牵扯出我们今天的话题拉,如何实现呢?实现后该实现还能应用到哪些场景? 1、第一反应的解决方案 碰到这个需求后,我第一反应就是很简单啊,分别用两个DIV将前三个Table中的TR标签与后三个TR标签包起来,然后通过JS控制DIV的显示。 第一步:使用DIV包裹需要隐藏显示的TR。代码如下: table div id="divName" tr td姓名:/td tdinput id="txtname" type="text" //td /tr /div div id="divSex" tr td年龄:/td tdinput id="txtsex" type="text" //td /tr /div /table 第二步:使用JS控制DIV的显示,来达到控制隐藏或显示行的效果: $("#divName").style.display = "none"; $("#divSex").style.display = "block"; 第三步:运行程序,你会发现根本不管用,哈哈,有点被耍的感觉~!因为TR标签只能与TABLE标签搭配使用!好啦,虽然上面的代码不管用!但是还算起到了一个引导的作用吧,失败是成功的老娘嘛! 2、推荐的使用panel解决方案 这是在我描述了DIV与TR不能配合使用后,被同事笑话啦,哎、看来以后要多多学习学习HTML啦,……

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明