高性能

Java Web 前端高性能优化(二)

自作多情 提交于 2019-12-15 23:01:35
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> ######一.上文回顾 上回我们主要从图片的合并、压缩等方面介绍前端性能优化问题(详见 Java Web 前端高性能优化(一) ) 本次我们主要从图像BASE64 编码、GZIP压缩、懒加载与预加载以及 OneAPM Browser Insight 的定位分析功能四个方面介绍前端优化方法 ######二.图像的 BASE64 编码 不管如何,图片的下载始终都要向服务器发出请求,要是图片的下载不用向服务器发出请求,而可以随着 HTML 的下载同时下载到本地那就太好了。而目前,浏览器已经支持了该特性,我们可以将图片数据编码成 BASE64 的字符串,使用该字符串代替图像地址。 假设用 S代表这个 BASE64 字符串,那么就可以使用 <img src="data:image/png;base64,S"> 来显示这个图像。可以看出,图像的数据包含在了 HTML 代码里,无需再次访问服务器。那么图像要如何编码成 BASE64 字符串呢? 可以使用 在线的工具---“Base64 Online”,这个工具可以上传图片将图片转换为 BASE64 字符串。当然,如果读者有兴趣,完全可以自己实现一个 BASE64 编码工具,比如使用 Java 开发,它的代码就如清单 1 所示。 清单 1. BASE64 的 Java 代码

高流量网站如何做出高性能?

走远了吗. 提交于 2019-12-09 18:22:48
前一段时间接触了一个教育集团的老总,集团本身是在教育实体化阶段也就是各种教科书盛行的时候起来的,最近 10 年互联网教育越来越火,老板也瞅准商机跳了进来。 可是公司的在线教育板块一直不温不火没有什么起色,Google Analytics、百度统计、CNZZ 数据专家等各种运营软件用了个遍还是老样子。 **「你说为啥?」**老总总是问身边的人。 我尝试打开他公司的官网以及几个教育产品的网页,没有一个页面在 10s 内被打开。。。 你说为啥?! 在时间如此精贵的当下,任何一个互联网公司如果 不注重用户体验 ,一味的注重开发、上线、销售,其结局。。。不管你们想到没想到,我想到了。。。。 有一种声音总是在喊**「我们要高性能网站!」**于是各种服务器、各种 CDN、DNS 全上了之后却发现—— 花了不少效果不好 。 那么,问题来了。。。。 #####一.什么叫高性能的网站? 现有两个网站性能架构设计方案:方案 A 和方案 B。方案 A 在小于 100 个并发用户访问时,每个请求的响应时间是 1 秒,当并发请求达到 200 的时候,请求的响应时间将骤增到 10 秒。方案 B 不管是 100 个还是 200 个并发访问,每个请求的响应时间都差不多是 1.5 秒。 哪个方案的性能好? 如果你的老板要求「我们要改善一下网站的性能」, 你知道他指的是什么吗? 同类型的两个网站,X

高性能MYSQL读书要点摘录_3_Schema与数据类型优化

好久不见. 提交于 2019-12-06 11:15:53
一 选择优化的数据类型 更小的通常更好:占用更少的磁盘,内存 ,CPU。同时要确保没有低估要存储值的范围。 简单就好:简单的数据类型操作通常需要更少的CPU周期。比如 整形比字符操作的代价更低。 尽量避免NULL:通常情况下最好指定列为NOT NULL,除非真的要存储为NULL。因为如果查询中包含NULL的列,对MYSQL来说更难优化,因为可为NULL的列使得索引,索引统计和值比较都更加复杂。同时 可为NULL的列会使用更多的存储空间,在MYSQL里需要特殊处理。 为列确定合适的数据类型,第一步需要确定合适的大类型:数字,字符串,时间等;第二步,选择具体的类型。很多MYSQL的数据类型可以存储为相同的数据类型,只是存储的长度和范围不一样、允许的精度不同,相同大类型的不同子类型数据有时也有一些特殊的行为和属性。例如datetime和timestamp列都可以存储相同的类型的数据:时间和日期,精确到秒。然而timestamp只使用datetime一半的存储空间,并且会根据时区变化,具有特殊的自动更新能力。另一方面,TIMESTAMP允许的时间范围要小的多,有时候它的特殊能力会成为障碍。MYSQL为了兼容性支持很多别名,例如INTEGER,BOOL,NUMERIC都是整形,只是别名不同。通过show create table 可以查看基本类型,而不是别名。 二 整数类型 整数类型包含

Golang实现的高性能HTTP负载工具

岁酱吖の 提交于 2019-12-01 09:51:01
Sniper Sniper是一个功能强大、高性能的HTTP负载工具,采用Golang编写。利用协程并发优势,实现海量并发、超低内存占用、丰富图表展示。是测试、分析、优化服务端性能的绝佳助手! ##体验 提供以下可执行文件,可直接运行 Darwin 64 bit Darwin 32 bit Linux 64 bit Linux 32 bit FreeBSD 64 bit FreeBSD 32 bit ##功能 以实用为原则,实现以下功能 GET / POST keep-alive模式 https 图表展示结果 测试多个目标 支持大文件负载 跨平台,支持Linux,FreeBSD,Darwin ###对比同类工具 ##性能 内存占用低于Apache Benchmark(ab)等主流负载工具 执行速度接近ab,高并发时超过ab 支持10k以上并发 支持超大文件测试 测试的详细情况,与各大负载测试工具的性能对比 在此 ##图表展示 统计分析每个请求 输出建立连接时间 输出服务端响应时间 输出总时间 基于 dygraphs 与html5,详细展现服务端性能情况 从测试结果中等距采样约1000样本,详细展现连接建立,链路传输和服务端执行情况 下图展示了总时间和连接建立时间的对比,Golang是怎样得到连接建立的时间呢? 原来项目基于net库实现了HTTP协议栈,重构而不是官方net

Netty高性能架构之道

冷暖自知 提交于 2019-11-30 19:07:50
1. 引言 Netty是一个高性能、异步事件驱动的NIO框架,它提供了对 TCP、UDP和文件传输 的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过 Future-Listener机制 ,用户可以方便的主动获取或者通过通知机制获得IO操作结果。 作为当前最流行的NIO框架,Netty在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,一些业界著名的开源组件也基于Netty的NIO框架构建。 2. 为什么选择Netty Netty是业界最流行的NIO框架之一,它的健壮性、功能、性能、可定制性和可扩展性在同类框架中都是首屈一指的,它已经得到成百上千的商用项目验证,例如Hadoop的RPC框架avro使用Netty作为底层通信框架;很多其他业界主流的RPC框架,也使用Netty来构建高性能的异步通信能力。 通过对Netty的分析,我们将它的优点总结如下: API使用简单,开发门槛低; 功能强大,预置了多种编解码功能,支持多种主流协议; 定制能力强,可以通过ChannelHandler对通信框架进行灵活地扩展; 性能高,通过与其他业界主流的NIO框架对比,Netty的综合性能最优; 成熟、稳定,Netty修复了已经发现的所有JDK NIO BUG,业务开发人员不需要再为NIO的BUG而烦恼; 社区活跃,版本迭代周期短

高性能Javascript--脚本的无阻塞加载策略

落花浮王杯 提交于 2019-11-30 08:45:02
Javascript在浏览器中的性能,可以说是前端开发者所要面对的最重要的可用性问题。 在Yahoo的Yslow23条规则当中,其中一条是将 JS放在底部 。原因是,事实上,大多数浏览器使用单进程处理UI和更新Javascript运行等多个任务,而同一时间只能有一个任务被执行。Javascript运行了多长时间,那么在浏览器空闲下来响应用户交互之前的等待时间就有多长。 从基本层面说,这意味着<script>标签的出现使整个页面因脚本解析、运行而出现等待。不论实际的 JavaScript 代码是内联的还是包含在一个不相干的外部文件中,页面下载和解析过程必须停下,等待脚本 完成这些处理,然后才能继续。这是页面生命周期必不可少的部分,因为脚本可能在运行过程中修改页面 内容。典型的例子是 document.write()函数,例如: <html> <head> <title>Script Example</title> </head> <body> <p> <script type="text/javascript"> document.write("The date is " + (new Date()).toDateString()); </script> </p> </body> </html> 当浏览器遇到一个<script>标签时,正如上面 HTML 页面中那样,无法预知

创龙高性能AM437x Cortex-A9开发板

前提是你 提交于 2019-11-26 20:14:36
1 开发板 简介 TL437x- EVM 是 广州创龙基于 SOM-TL437x 核心板研发的 一款 TI ARM Cortex-A9 AM437x 开发板, 采用核心板 + 底板 方式, 尺寸为 180 mm x 1 30m m , 核心板采用 4*60pin B2B 工业级连接器 , 稳定、可靠、便捷,可以帮助客户 快速评估 核心板 性能。 TL437x- EVM 开发板 底板 采用 两 层无铅沉金电路板设计,为了方便用户学习开发 和 参考使用,上面引出了各种常见的接口。 图 2 图 3 图 4 图 5 图 6 图 7 2 核心板简介 Ø 标配工业级核心板, 基于 TI AM 437x ARM Cortex-A9 CPU ,主频高达 1GHz , 512/1024MByte NAND FLASH ,低功耗 512/1024MByte DDR 3L , 性能比上一代 Sitara 处理器 AM335x 提 高 40 % ,性价比高 ; Ø Pin to Pin 兼容 AM4379/AM4378/AM4377/AM4376 ,具有 4 个 PRU 协处理器,支持 EtherCA T 、 PROFINET 、 EtherNet/IP 、 EnDa t 等工业协议; Ø 内部集成 SGX530 3D 图形加速器和触摸屏控制器, 24 位 LCD 显示,分辨率可高达 2048*2048