摘要: [TOC] 在开始之前必须说明,本文力图简单的描述而非学院派解释。 应用程序性能指标 一般地说,单一指标无法勾画出整体水平,我们需要综合使用 响应时长 、 并发数 、 吞吐量 等各种指标描述应用的响应能力。网络上对相关指标有详细描述,这里作出部分解释、补充和示例。 响应时长 响应时长是指系统对请求作 阅读全文
posted @ 2020-01-03 09:53 leoninew 阅读(842) 评论(0) 推荐(0) 编辑
摘要: [TOC] 快速失败 抛开各种细枝末节的原因,外部组件/依赖不可用的情况时常发生。站点应用有容错能力,能够从常规情况下的失败中恢复过来继续处理后续请求,但部分条件下,失败会从源头逐步蔓延直至拖垮所有应用,称之为 雪崩效应 。 为了避免此类问题发生,我们需要使用一些手段规避,比较典型的像熔断器比如 " 阅读全文
posted @ 2020-01-03 09:45 leoninew 阅读(736) 评论(0) 推荐(0) 编辑
摘要: 随着纯单体项目的逐渐减少,远程服务调用失败变得十分常见。由于 HTTP 协议的开放性,远程服务调用异常的复杂度在增长。 HTTP 状态码 HTTP 状态码是描述响应的重要信息,参考 List of HTTP status codes。 1XX 未被定义在 HTTP/1.0 协议中; 2XX 表示请求 阅读全文
posted @ 2019-12-12 09:13 leoninew 阅读(1099) 评论(0) 推荐(1) 编辑
摘要: [TOC] 问题 Oracle 官方提供了 dotnet core 驱动,但我们在使用中遇到了精度问题。 复现 以下代码运行数学运算 1/3,无论是 还是 均会抛出异常 排查 精度溢出的本质是数据类型不能完全匹配,以此为出发点查阅文档,得知 Oracle 返回的数据类型与 C 版本存在不兼容问题,参 阅读全文
posted @ 2019-11-28 10:17 leoninew 阅读(488) 评论(0) 推荐(0) 编辑
摘要: [TOC] 前文回顾 "Microsoft.Extensions.DependencyInjection 之一:解析实现" 提到了 Microsoft.Extensions.DependencyInjection 包含以下核心组件。 IServiceCallSite 组件实例化上下文,包含许多实现, 阅读全文
posted @ 2019-11-07 09:16 leoninew 阅读(1072) 评论(2) 推荐(2) 编辑
摘要: [TOC] 准备工作 接 "Microsoft.Extensions.DependencyInjection 之一:解析实现" Visual Studio 从2015 版本起携带了诊断工具,可以很方便地进行实时的内存与 CPU 分析,将大家从内存 dump 和 windbg 中解放出来。本文使用大量 阅读全文
posted @ 2019-11-02 12:07 leoninew 阅读(1071) 评论(0) 推荐(1) 编辑
摘要: [TOC] 前言 项目使用了 Microsoft.Extensions.DependencyInjection 2.x 版本,遇到 第2次请求时非常高的内存占用情况 ,于是作了调查,本文对 3.0 版本仍然适用。 先说结论,可以转到 章节,为了在性能与开销中获取平衡, 在初次请求时使用反射实例化目标 阅读全文
posted @ 2019-11-01 09:33 leoninew 阅读(5736) 评论(3) 推荐(9) 编辑