应用性能

如何使用 Java8 实现观察者模式?(上)

拜拜、爱过 提交于 2020-02-28 13:51:47
【编者按】本文作者是 BAE 系统公司的软件工程师 Justin Albano。在本篇文章中,作者通过在 Java8 环境下实现观察者模式的实例,进一步介绍了什么是观察者模式、专业化及其命名规则,供大家参考学习。本文系国内 ITOM 管理平台 OneAPM 工程师编译整理。 观察者(Observer)模式又名发布-订阅(Publish/Subscribe)模式,是四人组(GoF,即 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides)在1994合著的《设计模式:可复用面向对象软件的基础》中提出的(详见书中293-313页)。尽管这种模式已经有相当长的历史,它仍然广泛适用于各种场景,甚至成为了标准Java库的一个组成部分。目前虽然已经有大量关于观察者模式的文章,但它们都专注于在 Java 中的实现,却忽视了开发者在Java中使用观察者模式时遇到的各种问题。 本文的写作初衷就是为了填补这一空白:本文主要介绍通过使用 Java8 架构实现观察者模式,并在此基础上进一步探讨关于经典模式的复杂问题,包括匿名内部类、lambda 表达式、线程安全以及非平凡耗时长的观察者实现。本文内容虽然并不全面,很多这种模式所涉及的复杂问题,远不是一篇文章就能说清的。但是读完本文,读者能了解什么是观察者模式,它在Java中的通用性以及如何处理在

提高 ASP.NET Web 应用性能的 24 种方法和技巧

ⅰ亾dé卋堺 提交于 2019-12-10 05:19:59
在这篇文章中,将介绍一些提高 ASP.NET Web 应用性能的方法和技巧。众所周知,解决性能问题是一项繁琐的工作,当出现性能问题,每个人都会归咎于编写代码的开发人员。 那性能问题到底该如何解决?<br> 以下是应用系统发布前,作为 .NET 开发人员需要检查的点。 1.debug=「false」 当创建 ASP.NET Web应用程序,默认设置为「true」。开发过程中,设置为「true」是非常有用多,但在应用程序发布部署时,需将其设置为「false」。 <compilation defaultLanguage="C#" debug="false" targetFramework="4.0" /> 2.关闭 tracing(追踪) tracing 是非常可怕的,你有没有忘记关闭它。假如没用,请确定编辑 web.config 并且关闭它。它将占用大量您的程序资源。 <trace enabled="false" requestLimit=”10” pageoutput=”false” traceMode=”SortByTime” localOnly=”true”> 3.禁用 session 假如您用不到 session 会话跟踪请务必禁用它。您可以在每个 asp.net 页面中设置如下: <%@ page language="c#" codebehind="webform1.aspx

模拟监控和真实用户体验监测,选哪个?

一曲冷凌霜 提交于 2019-12-05 03:56:59
终端用户模拟监控,也就是国内俗称的「云拨测」,其低廉的价格以及便捷的部署方法加快了模拟监测的普及速度,但同时也导致了一些误用:很多公司以及用户将模拟监控当做用户的真实访问情况,监控出来的数据很棒,但是用户的投诉却一直不断。 一.前言 最近几年,IT 界人力成本越来越高,并且大数据的到来从某种程度上讲也意味着互联网前期靠人力来进行性能优化的时代已经过去了,于是各种 APM 工具应运而生。 从实际角度讲,只有少数 APM 厂家才具备开发基于真实用户体验的性能监控工具的能力,所以模拟监控一直以来都是 APM 的主流。并且很多情况下,APM 供应商常常会单独出售模拟监控测试工具,并将其完全等同于性能监控,这导致监控方案的买主们常常误解这些技术案例,以为他们就是自己想要的真实用户体验监控。 从根本上说,这是由于用户对「可用性」与「真实用户体验性能监控」的理解有误造成的。 大多数模拟监控更偏重于网站应用的可用性、响应时间等,其当然有自己的重要之处,但是如果要有针对性的进行性能监控优化的话, 基于真实用户体验的性能监控 是必不可少的。 ######二.性能监控工具的推广难在哪里? 1.性能监控领域的主要问题 模拟监控与测试简单易懂,部署起来很方便,容易实现,不涉及代码权限的问题,但只从这一个渠道获得数据,并用于评定应用性能显然不是正确的视角。 虽然真实用户体验监控工具正在优化其部署方法,但

使用 Swagger UI 与 Swashbuckle 创建 RESTful Web API 帮助文

半世苍凉 提交于 2019-12-04 08:57:20
作者: Sreekanth Mothukuru 2016年2月18日 本文旨在介绍如何使用常用的 Swagger 和 Swashbuckle 框架创建描述 Restful API 的交互界面,并为 API 用户提供丰富的探索、文件和操作体验。 源代码: 下载 SwaggerUi_2.zip ###步骤 在本文中,我们将在 Asp.Net 创建一个简单的 Restful API,并整合 Swashbuckle 和 Swagger UI 。本文分为三部分。 创建 Asp.Net Web API项目 通过实体数据模型 (.edmx) 和 Scaffold API控件连接到 Sql Server数据库 整合 Swashbuckle/Swagger UI框架以描述 API 操作 ###创建 Asp.Net Web API 项目 首先创建一个新的“Asp.Net Web应用”,将其命名为“Swagger” 从模板中选择 Web API,也就是说, Visual Studio将把 MVC、与Web API相关的文件夹和核心引用添加到我们的应用中。然后,点击“更改权限”,选择“无权限”后点击OK。通过以上设置,我们将跳过项目中与账户相关的控件和视图。 执行 Visual Studio 启动程序后,项目文档和文件夹的结构如下: 我们将在应用 App_Start 文件夹中将 MVC 控件的路径设置为