0. 写在前面
工作一年多了,发现自己还是没什么长进。学技术这件事儿,还是得靠自己啊,所以我准备以专题的形式来提升自己的能力。这篇我总结了一些搜集的比较好的讲web高性能开发的文章和书籍,都是我自己看过的。以后再也不怕别人问到高性能web的经验和知识了,用老话说,就算没吃过猪肉也应该见过猪跑吧,咱就算没经历过高性能web开发实践,也至少了解一些这方面的知识吧。哈哈。
继续阅读 »
Sangmin is a Senior JavaScript developer working at NHN and the creator of the JavaScript animation library Collie.
I use collie framework to developed some HTML5 game.
继续阅读 »
下载JMeter 5.1.1(Requires Java 8+)并设置中文界面
下载后解压到任意位置
http://mirrors.shu.edu.cn/apache//jmeter/binaries/apache-jmeter-5.1.1.zip
设置中文界面
修改启动文件 jmeter.batapache-jmeter-5.1.1\bin\jmeter.bat,把默认language 改为zh_CN
改动前:
set JMETER_LANGUAGE=-Duser.language="en" -Duser.region="EN"
改动后:
set JMETER_LANGUAGE=-Duser.language="zh" -
继续阅读 »
文/Robin
2020 年 10 月 29 日,公有链项目 Conflux 的主网最终阶段 Conflux Tethys 现已上线,创世区块已挖出。
可能读者好奇了,什么是 Conflux?
Conflux 是支持高扩展性加密货币、智能合约的下一代高性能公链。它采用独有的可扩容树图(Tree-Graph)共识算法,在确保去中心化程度及安全性的情况下,大幅提升了 PoW 共识区块链的吞吐量,为 DApps、 Web 3.0 及开放式金融的发展构建了高性能的平台。网络经过 20,000 个节点的实际测试,可实现达到 3000 至 6000 的吞吐量。
Conflux 发布于 2018 年,于 2019 年上线测试网,并从
继续阅读 »
目录
Table of Contents
{:toc}
文/Robin
本站推广
币安是全球领先的数字货币交易平台,提供比特币、以太坊、BNB 以及 USDT 交易。
币安注册: https://accounts.binancezh.pro/cn/register/?ref=11190872
邀请码: 11190872
一 MongoDB简介
MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式,Mongo使用C++开发。Mongo的官方网站地址是:,读者可以在此获得更详细的信息。
特点:
它的特点是高性能、易部署、易
继续阅读 »
安装 ab(apache bench)
通过安装 httpd 的方式,顺带安装ab
```bash
yum -y install httpd
```
如果不想安装 httpd 但是又想使用ab命令的话,可以只安装 httpd-tools
```bash
yum -y install httpd-tools
```
继续阅读 »
Memcached作为高性能的分布式内存对象缓存系统,在web服务里应用较广,和高性能的异步非阻塞服务器Tornado搭配起来可以大幅提高服务端的性能。
应用Memcached缓存热点请求结果
我们给客户端提供api,通过json来返回http请求的结果,一般Web服务都是如此。由于用的是Tornado,所以逻辑上大概长这样:
一个请求对应一个RequestHandler对象,RequestHandler类通过定义get/post方法来处理http请求,结果会通过write方法写到一个write_buffer里,最终有flush方法负责将write_buffer里的结果返回给客户端。
缓存的话,我们一般是这样:
从Torn
继续阅读 »
高性能的 Web 应用是获得伟大用户体验的关键。随着 Web 应用越来越复杂,要想建立吸引人的用户体验,了解性能的影响是至关重要的。在过去的几年中,浏览器中也新增了许多 API 来帮助我们分析网络性能、页面加载时间等。但这些并没有给出详尽的足够灵活的方式,来帮助我们分析具体是什么降低了我们网站的性能。User Timing API 提供了一套机制来帮助我们测量我们的应用,从而找到应用中耗时的部分。在本文中,我将介绍这个 API 并提供一些如何使用它的例子。
你不能优化那些不能被测量的东西
给运行缓慢的应用提速的第一步是,找到应用中耗时的部位。要想找到这些烫手山药,最理想的方式就是对 JavaScript 代码进行区域性的运行时间
继续阅读 »
本文的前身是一篇笔记,比较零碎,发布出来是为了让后续的文章可以有一个基本的参考,本文会持续更新。
NDK 的高性能最常见的场景:多媒体,游戏。此外,利用 NDK 还能练习 C/C++,一举两得。
基本概念
shared library, .so
static library, .a
JNI: Java Native Interface
Application Binary Interface, ABI:我们将符号修饰标准、变量内存布局、函数调用方式等跟可执行代码二进制兼容性相关的内容称为程序的 ABI(摘自《程序员的自我修养》);
Application Programming Interface, API:API 是源码层面
继续阅读 »
同步IO
Linux IO的两阶段
同步, 异步, 阻塞, 非阻塞, 是网络IO中经常被提到的概念, 刚接触Tornado服务器的时候也知道Tornado是异步非阻塞的高性能web服务器, 直到最近看了一些资料才对同步异步的概念有了一些自己的想法。
HTTP协议是构建在TCP协议上的, TCP通信的底层本质上是socket的IO, 在Linux上, 以读socket为例, 数据首先到达的是内核缓冲区, 其次才会从内核缓冲区拷贝到用户进程, 所以负责通信的进程去读写socket的时候(也即recvfrom调用), 一般是两个阶段:
等待数据准备好, 此时数据暂存在内核缓冲区
数据准备好, 从内核缓冲区拷贝到用户进程
以上的两阶
继续阅读 »