首页 文章 精选 留言 我的

精选列表

搜索[高性能],共10004篇文章
优秀的个人博客,低调大师

gRPC 1.41.0 发布,高性能 RPC 框架

gRPC 1.41.0 现已发布,具体更新内容如下: Core: De-experimentalize XdsCredentials 和 XdsServerCredentials API。(#26544) xDS:删除环境变量保护以确保安全。(#27290) xDS Security:使用新方法获取证书提供者插件实例配置。(#27264) xDS server serving status:使用一个 struct,以允许在未来添加更多字段。(#27242) 使用 IWYU pragmas 注解 impl/codegen。(#27252) 将子模块 envoy-api 更新为 origin/main。(#27256) 将 third_party/protobuf 升级到 v3.17.3。(#27227) 使用 origin/master-with-bazel 更新子模块 boringssl-with-bazel。(#27208) 删除 libuv-iomgr 实现和 GRPC_UV 构建选项。(#27188) 允许通过 Google Default Credentials 访问 Google API 区域端点。(#27155) 删除除 PTHREAD 之外的 GPR_*_TLS 宏。(#26974) C++ 将版本升级到 v1.41.0-pre1。(#27371) De-experimentalizeXdsServerBuilder。(#27296) C++ opencensusfilter:修复为整体调用创建上下文的 point。(#27221) 标记 grpc++_test 库为 testonly。(#27214) 添加关于官方支持的平台的说明。(#22344) Open census call 尝试跨名称和属性更改 (#26889)(#26902) C# 反向移植#27382到 v1.41.x.(#27398) [csharp] 修复了在 non-ASCII 编码的 Windows 上加载库 grpc_csharp_ext.*.dll 时出错的问题。(#26762) 使用packageID 注释复制 Content native lib 项目以启用自定义。(#26725) Objective-C Objective-C:修复了创建 Unix 文件套接字的问题。(#26931) Python 对于 manylinux2014 aarch64 wheels,使用 manylinux_2_17 而不是 manylinux_2_24 标签。(#27280) 添加 Python 3.10 删除 3.5。(#26074) [Aio] 删除自定义 IO 管理器支持。(#27090) 更多详情可查看:https://github.com/grpc/grpc/releases/tag/v1.41.

优秀的个人博客,低调大师

gRPC 1.40.0 发布,高性能 RPC 框架

gRPC 1.40.0 现已发布,具体更新内容如下: Core: 将 Envoy API 更新到最新版本 (2021-07-30)(#26848) 默认情况下启用 retries(#26766) 添加 opentelemetry 作为最新 xDS API 的子模块(#26850) 将 protobuf 子模块指向新的 URL(#26811) 删除 BUILD.gn(#26822) 防止在创建 TCP 连接时导致 grpc_winsocket 对象 early-destruction 的 race(#26642) TLS Security Connector:当证书尚未准备好时,添加始终失败的握手器(#26561) 在 Bazel 构建中启用分层检查(#26591) 在 JWT 和 GDC 中支持用户提供的"scope"(#26577) C++ C++ opencensus filter:修复为整体调用创建上下文的问题(#27238) Open census call 尝试跨度名称和属性更改(#26889)(#26957) Open census filter:使用新的内部统计数据 API 并记录重试统计数据(#26739) 为 retries 添加 OpenCensus 措施和视图(#26751) Python 为 gRPC Python 添加 retry example(#26829) 删除 Python 2.7 binary wheel generations(#26691) [Aio][fix] 捕捉请求迭代器中的应用异常(#26706) 更新说明:https://github.com/grpc/grpc/releases/tag/v1.40.0

优秀的个人博客,低调大师

gRPC 1.39.0 发布,高性能 RPC 框架

gRPC 1.39.0 发布,更新内容如下: Core: 需要时为 CFStream 初始化 tcp_posix; 更新 boringssl 子模块; 修复备份轮询器竞赛; 在 HTTP CONNECT 请求中使用默认端口 443; C++: 由 EventEngine API 支持的新 iomgr 实现; async_unary_call:增加一个 Destroy 方法,由 std::default_delete 调用; 去除 C++ 回调 API 的实验性; C#: 添加 ChannelCredentials.SecureSsl 属性,以便更好地使用ChannelCredentials进行编解码; 更好方法来构建 protoc aarch64 工件; 添加 C# 插件 "file_suffix" 选项,默认为 "Grpc.cs"; 为生成的服务存根添加 "GeneratedCode" 属性。(#26164) PHP: PHP:停止读取 composer.json 文件只是为了读取版本字符串; Python: Python AIO:在拦截器上匹配延续键入; 通过在 aarch64 上发布 manylinux_2_24 wheels 而不是 manylinux2014 来解决#26279; 修复 zlib unistd.h 导入问题; 在 gevent poller 中处理 gevent 异常; Ruby: 通过宏在 Ruby 中设置 XDS 用户代理; 更多详情可查看:https://github.com/grpc/grpc/releases/tag/v1.39.0

优秀的个人博客,低调大师

gRPC 1.36.0 发布,高性能 RPC 框架

gRPC 1.36.0 版本已发布。详细的 gRPC 文档请参阅grpc.io,此版本包含一些改进和错误修复,下面列出了本次更新的一些重点内容: Core 删除在 c-ares DNS 解析器中设置的不必要的 pollset set。(#25296) 修复zlib + macOS 中的隐式声明错误。(#24979) 支持 Tls Credentials 中的 Default Root Certs。(#25018) C++ 将第三方身份 C++ api 从实验性命名空间移出。(#25379) refactor!:将 error_details 函数更改为 templates。(#25196) 支持 ServerContext for callback API。(#25175) C# [Backport] [C#] 尽可能使用 explicit native extension loading。(#25506) PHP PHP:支持 PSM security。(#25303) PHP:修复了重用调用对象上的 segfault。(#25245) PHP:修复了 phpunit 8 warnings。(#25019) Python 实现 Python Client和 ServerxDS Creds。(#25365) Ruby 删除对 Ruby 2.3 的支持。(#25201) 更新说明:https://github.com/grpc/grpc/releases/tag/v1.36.0

优秀的个人博客,低调大师

gRPC 1.35.0 发布,高性能 RPC 框架

gRPC Core 的 1.35.0 已经发布,详细的 gRPC 文档请参阅grpc.io,此版本包含改进和一些错误修复,下面列出了本次更新的一些重点内容: Core Backport “修复 zlib + macOS 中的隐式声明错误#24979”。 (#25133) xDS 功能文档更新了对大小写不敏感的前缀/完整路径匹配。(#24999) 将 darwin_arm64 和 darwin_arm64e 添加到 c-ares 配置设置中。(#24872) 添加 FileWatcher CertificateProvider。(#24600) 使用环境变量 GRPC_XDS_EXPERIMENTAL_SECURITY_SUPPORT 保护 xds 安全代码。(#24780) C ++ 将 bazel 升级到 3.7.1(整个存储库)。(#25000) Makefile:删除对构建 protobuf、C++ 库和可执行文件的支持。(#24000) C# 修复 Linux 上的 nuget 软件包签名(在非 Windows 上不要使用 PublicSign = true)。(#24980) 删除 C#作为 xDS 功能支持的语言。(#24982) 修复 .NET 5 单文件应用程序中的 C# 原生库加载。(#24744) Python 修复 Mac 上 protoc_compiler.so 中的 libprotobuf 符号的可见性。(#24992) [Aio]更正了 grpc.aio.ServicerContext.abort 的类型注释。(#24946) 将限制并发 RPC 功能添加到 asyncio 服务器。(#24818) [Aio]修复了流式 RPC 中的空响应处理。(#24801) [Backport]在 SingleThreadedRendezvous 中实现 grpc.Future 接口。(#24574) [Backport]使 Python 2 成为 Bazel 构建的可选依赖项。(#24452) Ruby 修复 rb_event_thread.c 中的隐式声明。(#24962) 基于最新的 rake-compiler-dock / manylinux14 映像的 ruby 构建,添加 ruby 3.0 二进制包。(#25070) 添加对 circuit_breaking xds 互操作测试用例的支持。(#25028) 二进制软件包(例如grpc-1.35.0-x86_64-linux.gem): 现在与 ruby 3.0 兼容 现在是基于 manylinux14 构建的(不再支持 CentOS6) 详细更新信息:https://github.com/grpc/grpc/releases/tag/v1.35.0

优秀的个人博客,低调大师

gRPC 1.34.0 发布,高性能 RPC 框架

gRPC Core 的 1.34.0 版已经发布,详细的 gRPC 文档请参阅grpc.io,此版本包含改进和一些错误修复,下面列出了本次更新的一些重点内容: Core 使用环境变量“ GRPC_XDS_EXPERIMENTAL_SECURITY_SUPPORT”保护 xds 安全代码。(#24782) 添加对“ unix-abstract:” URI 的支持,以支持抽象的 unix 域套接字。(#24500) 解析未垂直的 SAN 字段时的增量索引。(#24601) 还原“revert”不推荐使用 GRPC_ARG_HTTP2_MIN_SENT_PING_INTERVAL_WITHOUT_DATA_MS“”。(#24518) xds:NACKING 时将状态代码设置为 INVALID_ARGUMENT。(#24516) 在 address_sorting.h 中包括 stddef.h。(#24514) xds:在 RouteMatch 中添加对 case_sensitive 选项的支持。(#24381) 删除 Android NDK r12b 的 TLS 解决方法。(#24283) C++ 修复 define = grpc_no_xds = true 构建。(#24503) 对 CreateCustomInsecureChannelWithInterceptorsFromFd 的实验支持和测试。(#24362) C# 修复了.NET 5 单文件应用程序中的 C#本机库加载(反向移植到 v1.34.x)。(#24853) 为特定于 Grpc.Core 的本机依赖项设置 RID。(#24766) 改进 PlatformApis 检查以检测 Unity。(#24714) 修复为在 .NET 5 或更高版本上不需要 libc-dev。(#24485) C#:通过将移动支持移至 Grpc.Core.Xamarin 软件包,使 Grpc.Core nuget 更简洁。(#24380) C#:不再支持 linux 和 macos 的 32 位运行时。(#24378) 优化更新 C#HelloworldXamarin 示例。(#24425) Objective-C 支持 grpc-core 和 grpc-cpp 的 swift 软件包管理器。(#24571) 将传输信息添加到 grpc-objc 用户代理中。(#24253) 升级 iOS 和 OSX 到最新版本。(#24282) PHP PHP:在 PECL 扩展中添加了对 PHP 8 的支持。(#24621) PHP:从 PECL 扩展中弃用 PHP 5 支持。(#24353) Python 使 setuptools 作为 grpcio_tools 的依赖项。(#24752) 停止 ctrl-c 为 AsyncIO 服务器生成的垃圾邮件日志。(#24718) 使运行时 Protos 可以使用众所周知的类型。(#24478) 将 Python 的 MACOSX_DEPLOYMENT_TARGET 升级到 10.10。(#24480) 使 Python 2 成为 Bazel 构建的可选依赖项。(#24407) Linux、macOS 支持预编译的 Python 3.9 轮子。(#24356) Ruby 将 Ruby 的 MACOSX_DEPLOYMENT_TARGET 升级到 10.10。(#24479) 详细更新信息:https://github.com/grpc/grpc/releases/tag/v1.34.0

优秀的个人博客,低调大师

PHP 高性能 Excel 扩展 1.2.7 发布

为什么使用 php-ext-xlswriter xlswriter是一个PHP C扩展,可用于在Excel 2007+ XLSX文件中写入多个工作表的文本,数字,公式和超链接。 它支持以下功能: 100%兼容的Excel XLSX文件 完整的Excel格式 合并单元格 自动筛选 图表 数据验证和下拉列表 工作表PNG / JPEG图像 用于写入大文件的内存优化模式 适用于Linux,FreeBSD,OpenBSD,OS X,Windows 编译为32位和64位 FreeBSD许可证 唯一的依赖是zlib 更新内容: 修复 循环导出多个文件段错误 新特性 读取xlsx文件 新增图表类型(圆环图、面积图、直方图) 单元格边框样式(薄边框风格、中等边框风格、虚线边框风格、虚线边框样式、厚边框风格、双边风格、中等虚线边框样式、.......) 基准测试 测试环境: Macbook Pro 13 inch Intel Core i5 16GB 2133MHz LPDDR3 Memory 128GB SSD Storage. 导出 两种内存模式,导出100W行数据,单行27列,每个单元格19个中文字符 常规模式: 耗时 29S,内存占用 2083MB; 固定内存模式: 耗时 52S, 内存占用 <1MB; 读取 读取 100W 行数据,每行1列,单元格数据为int 全量读取: 耗时 3S, 内存占用 558MB; 游标读取: 耗时 2.8S, 内存占用 <1MB;

优秀的个人博客,低调大师

瞬时响应:网站的高性能架构

一、网站性能测试 (1)性能测试指标:①响应时间;②并发数;③吞吐量;④性能计数器; (2)性能测试方法:①性能测试;②负载测试;③压力测试;④稳定性测试; (3)性能优化策略: ①性能分析:检查请求处理各个环节的日志,分析哪个环节响应时间不合理,检查监控数据分析影响性能的因素; ②性能优化:Web前端优化,应用服务器优化,存储服务器优化; 二、Web前端性能优化 (1)浏览器访问优化: ①减少http请求:因为http是无状态的,每次请求的开销都比较昂贵(需要建立通信链路、进行数据传输,而服务器端对于每个http请求都需要启动独立的线程去处理);减少http的主要手段是合并CSS、合并JS、合并图片(CSS精灵,利用偏移定位image); ②使用浏览器缓存:设置http头中Cache-Control和Expires属性; ③启用压缩:可以对html、css、js文件启用Gzip压缩,可以达到较高的压缩效率,但是压缩会对服务器及浏览器产生一定的压力; ④CSS放页面最上面,JS放页面最下面:浏览器会在下载完全部CSS之后才开始对整个页面进行渲染,因此最好将CSS放在页面最上面;而浏览器在加载JS后会立即执行,有可能会阻塞整个页面,造成页面显示缓慢,因此最好将JS放在页面最下面; ⑤减少Cookie传输:一方面,太大的Cookie会严重影响数据传输;另一方面,对于某些静态资源的访问(如CSS、JS等)发送Cookie没有意义; (2)CDN加速: CDN(内容分发网络)仍然是一个缓存,它将数据缓存在离用户最近的地方,便于用户以最快速度获取数据。即所谓的“网络访问第一跳”,如下图所示: CDN CDN只将访问频度很高的热点内容(例如:图片、视频、CSS、JS脚本等访问频度很高的内容)进行缓存,可以极大地加快用户访问速度,减少数据中心负载。 (3)反向代理: 反向代理服务器位于网站机房一侧,代理网站Web服务器接收HTTP请求,对请求进行转发,如下图所示: 利用反向代理的网站架构 反向代理服务器具有以下功能: ①保护网站安全:任何来自Internet的请求都必须先经过代理服务器 ②第一次被访问的静态内容别缓存在反向代理服务器上,加速Web请求响应速度,减轻Web服务器的负载压力 ③负载均衡:均衡地分发请求,平衡集群中各个服务器的负载压力 三、应用服务器性能优化 (1)分布式缓存: PS:网站性能优化第一定律:优先考虑使用缓存优化性能。缓存是指将数据存储在相对较高访问速度的存储介质中(如内存),以供系统进行快速处理响应用户请求。 ①缓存本质是一个内存Hash表,数据以(Key,Value)形式存储在内存中。 Hash表存储 ②缓存主要用来存放那些读写比很高、很少变化的数据,如商品的类目信息、热门商品信息等。 ③分布式缓存架构:一方面是以以JBoss Cache为代表的互相通信派;另一方面是以Memcached为代表的互不通信派; JBoss Cache需要将缓存信息同步到集群中的所有机器,代价比较大;而Memcached采用一种集中式的缓存集群管理,缓存与应用分离部署,应用程序通过一致性Hash算法选择缓存服务器远程访问缓存数据,缓存服务器之间互不通信,因而集群规模可以轻易地扩容,具有良好的伸缩性。 image Memcached由两个核心组件组成:服务端(ms)和客户端(mc),在一个memcached的查询中,mc先通过计算key的hash值来确定kv对所处在的ms位置。当ms确定后,客户端就会发送一个查询请求给对应的ms,让它来查找确切的数据。因为这之间没有交互以及多播协议,所以 memcached交互带给网络的影响是最小化的。 image (2)异步操作: ①使用消息队列将调用异步化,可改善网站的扩展性,还可改善网站性能; image ②消息队列具有削峰的作用->将短时间高并发产生的事务消息存储在消息队列中,从而削平高峰期的并发事务; *PS:*****任何可以晚点做的事情都应该晚点再做。前提是:这个事儿确实可以晚点再做。 (3)使用集群: ①在高并发场景下,使用负载均衡技术为一个应用构建多台服务器组成的服务器集群; image ②可以避免单一服务器因负载压力过大而响应缓慢,使用户请求具有更好的响应延迟特性; ③负载均衡可以采用硬件设备,也可以采用软件负载。商用硬件负载设备(例如出名的F5)成本通常较高(一台几十万上百万很正常),所以在条件允许的情况下我们会采用软负载,软负载解决的两个核心问题是:选谁、转发,其中最著名的是LVS(Linux Virtual Server)。 PS:LVS是四层负载均衡,也就是说建立在OSI模型的第四层——传输层之上,传输层上有我们熟悉的TCP/UDP,LVS支持TCP/UDP的负载均衡。 LVS的转发主要通过修改IP地址(NAT模式,分为源地址修改SNAT和目标地址修改DNAT)、修改目标MAC(DR模式)来实现。有关LVS的详情请参考:http://www.importnew.com/11229.html (4)代码优化: ①多线程:使用多线程的原因:一是IO阻塞,二是多CPU,都是为了最大限度地利用CPU资源,提高系统吞吐能力,改善系统性能; image ②资源复用:目的是减少开销很大的系统资源的创建和销毁,主要采用两种模式实现:单例(Singleton)和对象池(Object Pool)。例如,在.NET开发中,经常使用到的线程池,数据库连接池等,本质上都是对象池。 ③数据结构:在不同场合合理使用恰当的数据结构,可以极大优化程序的性能。 image ④垃圾回收:理解垃圾回收机制有助于程序优化和参数调优,以及编写内存安安全的代码。这里主要针对Java(JVM)和C#(CLR)一类的具有GC(垃圾回收机制)的语言。 image 四、存储性能优化 (1)机械硬盘 还是 固态硬盘? ①机械硬盘:通过马达驱动磁头臂,带动磁头到指定的磁盘位置访问数据。它能够实现快速顺序读写,慢速随机读写。 ②固态硬盘(又称SSD):无机械装置,数据存储在可持久记忆的硅晶体上,因此可以像内存一样快速随机访问。 在目前的网站应用中,大部分应用访问数据都是随机的,这种情况下SSD具有更好的性能表现,但是性价比有待提升(蛮贵的,么么嗒)。 (2)B+树 vs LSM树 ①传统关系型数据库广泛采用B+树,B+树是对数据排好序后再存储,加快数据检索速度。 image PS:目前大多数DB多采用两级索引的B+树,树的层次最多三层。因此可能需要5次磁盘访问才能更新一条记录(三次磁盘访问获得数据索引及行ID,一次数据文件读操作,一次数据文件写操作,终于知道数据库操作有多麻烦多耗时了) ②NoSQL(例如:HBase)产品广泛采用LSM树: 具体思想是:将对数据的修改增量保持在内存中,达到指定的大小限制后将这些修改操作批量写入磁盘。不过读取的时候稍微麻烦,需要合并磁盘中历史数据和内存中最近的修改操作,所以写入性能大大提升,读取时可能需要先看是否命中内存,否则需要访问较多的磁盘文件。 LSM树的原理是:把一棵大树拆分成N棵小树,它首先写入内存中,随着小树越来越大,内存中的小树会被清除并写入到磁盘中,磁盘中的树定期可以做合并操作,合并成一棵大树,以优化读性能。 image LSM树的优势在于:在LSM树上进行一次数据更新不需要磁盘访问,在内存即可完成,速度远快于B+树。

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册