自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4719)
  • 收藏
  • 关注

转载 MySQL实战45讲学习笔记:MySQL为什么有时候会选错索引?(第10讲)

一 、本节内容概要前面我们介绍过索引,你已经知道了在 MySQL 中一张表其实是可以支持多个索引的。但是,你写 SQL 语句的时候,并没有主动指定使用哪个索引。也就是说,使用哪个索引是由MySQL 来确定的。不知道你有没有碰到过这种情况,一条本来可以执行得很快的语句,却由于 MySQL 选错了索引,而导致执行速度变得很慢?我们一起来看一个例子吧。我们先建一个简单的表,表...

2019-10-02 06:42:00 231

转载 MySQL实战45讲学习笔记:普通索引和唯一索引,应该怎么选择?(第9讲)

一、今日内容概要今天的正文开始前,我要特意感谢一下评论区几位留下高质量留言的同学。用户名是 @某、人 的同学,对文章的知识点做了梳理,然后提了关于事务可见性的问题,就是先启动但是后提交的事务,对数据可见性的影响。@夏日雨同学也提到了这个问题,我在置顶评论中回复了,今天的文章末尾也会再展开说明。@Justin 和 @倪大人两位同学提了两个好问题。对于能够引发更深一步思考的问题,我会...

2019-09-30 10:58:00 212

转载 Web协议详解与抓包实战:如何用Chrome的Network面板分析HTTP报文

一、Chrome 抓包:Network 面板1、Network 面板• 控制器:控制面板的外观与功能• 过滤器:过滤请求列表中显示的资源• 按住 Command (Mac)或 Ctrl (Window / Linux),然后点击过滤器可以同时选择多个过滤器• 概览:显示 HTTP 请求、响应的时间轴• 请求列表:默认时间排序,可选择显示列• ...

2019-09-30 09:07:00 746

转载 MySQL实战45讲学习笔记:事务到底是隔离的还是不隔离的?(第8讲)

一、今日内容概要我在第 3 篇文章和你讲事务隔离级别的时候提到过,如果是可重复读隔离级别,事务 T 启动的时候会创建一个视图 read-view,之后事务 T 执行期间,即使有其他事务修改了数据,事务 T 看到的仍然跟在启动时看到的一样。也就是说,一个在可重复读隔离级别下执行的事务,好像与世无争,不受外界影响。但是,我在上一篇文章中,和你分享行锁的时候又提到,一个事务要更新一行,...

2019-09-30 09:06:00 186

转载 MySQL实战45讲学习笔记:行锁功过-怎么减少行锁对性能的影响?(第7讲)

一、上节回顾今日计划在上一篇文章中,我跟你介绍了 MySQL 的全局锁和表级锁,今天我们就来讲讲 MySQL的行锁。MySQL 的行锁是在引擎层由各个引擎自己实现的。但并不是所有的引擎都支持行锁,比如 MyISAM 引擎就不支持行锁。不支持行锁意味着并发控制只能使用表锁,对于这种引擎的表,同一张表上任何时刻只能有一个更新在执行,这就会影响到业务并发度。InnoDB是支持行锁的,这...

2019-09-30 09:06:00 160

转载 MySQL实战45讲学习笔记:全局锁和表锁-给表加个字段怎么有这么多阻碍?(第6讲)...

一、今日内容概要今天我要跟你聊聊 MySQL 的锁。数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来实现这些访问规则的重要数据结构。根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类。今天这篇文章,我会和你分享全局锁和表级锁。而关于行锁的内容,我会留着在下一篇文章中再和你详细介绍。...

2019-09-30 09:05:00 110

转载 Linux性能优化实战:案例篇-服务吞吐量下降很厉害,怎么分析?(52)

一、上节回顾上一节,我们一起学习了怎么使用动态追踪来观察应用程序和内核的行为。先简单来回顾一下。所谓动态追踪,就是在系统或者应用程序还在正常运行的时候,通过内核中提供的探针,来动态追踪它们的行为,从而辅助排查出性能问题的瓶颈。使用动态追踪,便可以在不修改代码也不重启服务的情况下,动态了解应用程序或者内核的行为。这对排查线上的问题、特别是不容易重现的问题尤其有效。在 Linux...

2019-09-26 10:27:00 960

转载 Linux性能优化实战: 答疑(六)-容器冷启动如何性能分析?(58)

一、上节回顾专栏更新至今,咱们专栏最后一部分——综合案例模块也要告一段落了。很高兴看到你没有掉队,仍然在积极学习思考、实践操作,并热情地分享你在实际环境中,遇到过的各种性能问题的分析思路以及优化方法。今天是性能优化答疑的第六期。照例,我从综合案例模块的留言中,摘出了一些典型问题,作为今天的答疑内容,集中回复。为了便于你学习理解,它们并不是严格按照文章顺序排列的。每个问题,我都附上...

2019-09-26 10:19:00 270

转载 Linux性能优化实战: 套路篇-优化性能问题的一般方法(56)

一、上节回顾上一节,我带你一起梳理了,性能问题分析的一般步骤。先带你简单回顾一下。我们可以从系统资源瓶颈和应用程序瓶颈,这两个角度来分析性能问题的根源。从系统资源瓶颈的角度来说,USE 法是最为有效的方法,即从使用率、饱和度以及错误数这三个方面,来分析 CPU、内存、磁盘和文件系统 I/O、网络以及内核资源限制等各类软硬件资源。至于这些资源的分析方法,我也带你一起回顾了,咱们...

2019-09-25 22:28:00 220

转载 Linux性能优化实战: 套路篇-分析性能问题的一般步骤(55)

一、上节回顾上一节,我们一起学习了,应用程序监控的基本思路,先简单回顾一下。应用程序的监控,可以分为指标监控和日志监控两大块。指标监控,主要是对一定时间段内的性能指标进行测量,然后再通过时间序列的方式,进行处理、存储和告警。而日志监控,则可以提供更详细的上下文信息,通常通过 ELK 技术栈,来进行收集、索引和图形化展示。在跨多个不同应用的复杂业务场景中,你还可以构建全链路...

2019-09-25 16:53:00 518

转载 Linux性能优化实战: 套路篇-系统监控的综合思路(53)

一、上节回顾在前面的内容中,我为你介绍了很多性能分析的原理、思路以及相关的工具。不过,在实际的性能分析中,一个很常见的现象是,明明发生了性能瓶颈,但当你登录到服务器中想要排查的时候,却发现瓶颈已经消失了。或者说,性能问题总是时不时地发生,但却很难找出发生规律,也很难重现。当面对这样的场景时,你可能会发现,我们前面介绍的各种工具、方法都“失效“了。为什么呢?因为它们都需要在性能问题...

2019-09-25 16:53:00 168

转载 日期校验正则表达式

https://www.cnblogs.com/fefjay/p/6889193.html转载于:https://www.cnblogs.com/zhaoyanhaoBlog/p/11585508.html

2019-09-25 16:20:00 168

转载 Linux性能优化实战:套路篇:Linux 性能工具速查(57)

一、上节回顾上一节,我带你一起梳理了常见的性能优化思路,先简单回顾一下。我们可以从系统和应用程序两个角度,来进行性能优化。从系统的角度来说,主要是对 CPU、内存、网络、磁盘 I/O 以及内核软件资源等进行优化。而从应用程序的角度来说,主要是简化代码、降低 CPU 使用、减少网络请求和磁盘 I/O,并借助缓存、异步处理、多进程和多线程等,提高应用程序的吞吐能力。性...

2019-09-24 18:32:00 199

转载 Linux性能优化实战:套路篇:应用监控的一般思路(54)

一、上节回顾上一节,我带你学习了,如何使用 USE 法来监控系统的性能,先简单回顾一下。系统监控的核心是资源的使用情况,这既包括 CPU、内存、磁盘、文件系统、网络等硬件资源,也包括文件描述符数、连接数、连接跟踪数等软件资源。而要描述这些资源瓶颈,最简单有效的方法就是 USE 法。USE 法把系统资源的性能指标,简化为了三个类别:使用率、饱和度以及错误数。 当这三者之中任一类...

2019-09-24 18:31:00 140

转载 Linux性能优化实战:案例篇-动态追踪怎么用?(下)(51)

一、上节回顾上一节,我带你一起学习了常见的动态追踪方法。所谓动态追踪,就是在系统或者应用程序正常运行的时候,通过内核中提供的探针,来动态追踪它们的行为,从而辅助排查出性能问题的瓶颈。使用动态追踪,可以在不修改代码、不重启服务的情况下,动态了解应用程序或者内核的行为,这对排查线上问题、特别是不容易重现的问题尤其有效。在 Linux 系统中,常见的动态追踪方法包括 ftrace、...

2019-09-24 18:30:00 334

转载 Linux性能优化实战:案例篇-动态追踪怎么用?(上)(50)

一、上节回顾上一节,我以 ksoftirqd CPU 使用率高的问题为例,带你一起学习了内核线程 CPU 使用率高时的分析方法。先简单回顾一下。当碰到内核线程的资源使用异常时,很多常用的进程级性能工具,并不能直接用到内核线程上。这时,我们就可以使用内核自带的 perf 来观察它们的行为,找出热点函数,进一步定位性能瓶颈。不过,perf 产生的汇总报告并不直观,所以我通常也推荐用火...

2019-09-24 18:25:00 316

转载 Linux性能优化实战:案例篇:内核线程 CPU 利用率太高,我该怎么办?(49)

一、上节回顾上一期,我们一起梳理了,网络时不时丢包的分析定位和优化方法。先简单回顾一下。网络丢包,通常会带来严重的性能下降,特别是对 TCP 来说,丢包通常意味着网络拥塞和重传,进而会导致网络延迟增大以及吞吐量降低。而分析丢包问题,还是用我们的老套路,从 Linux 网络收发的流程入手,结合 TCP/IP 协议栈的原理来逐层分析。其实,在排查网络问题时,我们还经常碰到的一个问...

2019-09-24 18:18:00 628

转载 python根据列表创建文件夹,拷贝指定文件

内容涉及:关键字定位,列表去重复,路径组装,文件夹创建,文件拷贝,字符串分割list.txt的内容为包含关键字的文件路径,如:关键字 ’181‘org/20190523/1/2019052320196231816923IMG039x030.JPG_n_1_1375_220_1475_320.pngorg/20190523/7/2019052320196171812302IMG00...

2019-09-24 10:49:00 469

转载 Codeforces 1221 G Graph And Numbers

题面 这种比赛时只有11个人做出来的题一般来说都是暴难的, 我也不知道我怎么搞出来的www 看完这个题第一感觉就是要容斥,至少有一条某种边的方案已经比较难求了,而直接算三种边都至少存在一条的方案数就更难了2333 那么不妨考虑从反面容斥吧 设把三种边的存在情况表示成三进制的话,1表示至少有一条 ,0表示一条都没有,?表示这种边没有限制,那么容...

2019-09-23 19:04:00 75

转载 Linux性能优化实战:案例篇-服务器总是时不时丢包,我该怎么办?(上)(47)...

一、上节回顾上一节,我们梳理了,应用程序容器化后性能下降的分析方法。一起先简单回顾下。容器利用 Linux 内核提供的命名空间技术,将不同应用程序的运行隔离起来,并用统一的镜像,来管理应用程序的依赖环境。这为应用程序的管理和维护,带来了极大的便捷性,并进一步催生了微服务、云原生等新一代技术架构。不过,虽说有很多优势,但容器化也会对应用程序的性能带来一定影响。比如,上一节我们一起分...

2019-09-23 17:08:00 497

转载 Linux性能优化实战:案例篇-服务器总是时不时丢包,我该怎么办?(下)(48)...

一、上节回顾上一节,我们一起学习了如何分析网络丢包的问题,特别是从链路层、网络层以及传输层等主要的协议栈中进行分析。不过,通过前面这几层的分析,我们还是没有找出最终的性能瓶颈。看来,还是要继续深挖才可以。今天,我们就来继续分析这个未果的案例。在开始下面的内容前,你可以先回忆一下上节课的内容,并且自己动脑想一想,除了我们提到的链路层、网络层以及传输层之外,还有哪些潜在问题可能会...

2019-09-23 17:03:00 401

转载 前端web worker实践与总结

参考链接:https://www.jianshu.com/p/97f6144dfddf转载于:https://www.cnblogs.com/ziyoublog/p/11572820.html

2019-09-23 15:58:00 190

转载 Linux性能优化实战:案例篇-为什么应用容器化后,启动慢了很多?(46)

一、上节回顾不知不觉,我们已经学完了整个专栏的四大基础模块,即 CPU、内存、文件系统和磁盘 I/O、以及网络的性能分析和优化。相信你已经掌握了这些基础模块的基本分析、定位思路,并熟悉了相关的优化方法。接下来,我们将进入最后一个重要模块—— 综合实战篇。这部分实战内容,也将是我们对前面所学知识的复习和深化。我们都知道,随着 Kubernetes、Docker 等技术的普及,越...

2019-09-23 15:49:00 650

转载 如何写出优雅耐看的JavaScript代码

参考链接:https://segmentfault.com/a/1190000020444918?utm_medium=hao.caibaojian.com&utm_source=hao.caibaojian.com&share_user=1030000000178452转载于:https://www.cnblogs.com/ziyoublog/p/11572271....

2019-09-23 14:38:00 60

转载 [Dart] Dynamic variable in Dart

First way to create dynamic variable is using 'dymaic' keywrod: dynamic a = 123; a = '123';Second way is using 'var' but unassign any value:void main() { var a; a = '123...

2019-09-22 19:35:00 52

转载 Codeforces 1221 F Choose a Square

题面 不知道大佬们怎么想的,反正我看到这种区间包含性质的并且score只和包含的区间与询问区间挂钩的题,马上就想到了扫描线23333 虽然革命方向无比正确,但却因为SB错误交了5次才 A。 WA第一发:考虑到我们扫描线的话是要坐标离散化的,然而这种做法是默认正方形内至少有一个点。可所有点权都是负值就尴尬了,这个时候需要找一个空点来把答案替代成0。虽然我...

2019-09-22 19:23:00 95

转载 [NgRx] NgRx Runtime Checks

Turn on runtime check:@NgModule({ declarations: [AppComponent], imports: [ ..., StoreModule.forRoot(reducers, { metaReducers, runtimeChecks: { strictSta...

2019-09-22 17:16:00 56

转载 [NgRx] Setting up NgRx Router Store and the Time-Travelling Debugger

Make sure you have the@ngrx packages installed: "@ngrx/data": "^8.0.1", "@ngrx/effects": "^8.0.1", "@ngrx/entity": "^8.0.1", "@ngrx/router-store": "^8.0.1", "@ngrx/stor...

2019-09-22 17:08:00 78

转载 Codeforces 1221 E Game With String

题面 第一眼以为是SG函数找规律题,然后发现并不是公平游戏。。。。 不过后来想了想,其实这样反而更好做。 这个游戏的一个显然的特性是,任何时候当场上存在长度 ∈[b,a)的块时,Bob必胜。(考虑贪心) 而这题的关键是发现,如果Bob操作时场上还有长度>=2b的块,那么Bob也必胜,因为Bob此时可以构造出一个长度为b的块。...

2019-09-22 10:45:00 102

转载 【题解】洛谷 P2725 邮票 Stamps

目录 题目 思路 $Code$ 题目P2725 邮票 Stamps思路$\texttt{dp}$。$\texttt{dp[i]}$表示拼出邮资$i$最少需要几张邮票。状态转移方程:$\texttt{dp[i]=min(dp[i],dp[i-value]+1)}$...

2019-09-22 09:37:00 104

转载 Android 避免内存泄漏

什么是内存泄露?  就是该回收的内存由于种种原因没有被回收,还驻留在内存中。内存泄露有什么影响?  可能一处小小的内存泄露就会导致整个应用卡顿,甚至崩溃。例子说明:  Toast.makeText(MainActivity.this,"Hello",Toast.LENGTH_SHORT).show();  这段代码可能会出现内存泄露。为什...

2019-09-21 15:26:00 64

转载 Linux性能优化实战: Linux 性能优化答疑(四)(32)

一、上节总结专栏更新至今,四大基础模块的第三个模块——文件系统和磁盘 I/O 篇,我们就已经学完了。很开心你还没有掉队,仍然在积极学习思考和实践操作,并且热情地留言与讨论。今天是性能优化的第四期。照例,我从 I/O 模块的留言中摘出了一些典型问题,作为今天的答疑内容,集中回复。同样的,为了便于你学习理解,它们并不是严格按照文章顺序排列的。每个问题,我都附上了留言区提问的截屏。...

2019-09-20 16:18:00 120

转载 [RxJS] Convert a Node.js style callback to Observable: bindNodeCallback

It's just likebindCallback, but the callback is expected to be of typecallback(error, result).import * as fs from 'fs';const readFileAsObservable = bindNodeCallback(fs.readFile);const r...

2019-09-20 15:20:00 65

转载 Linux性能优化实战:案例篇-如何优化 NAT 性能?(上)(41)

一、上节回顾上一节,我们探究了网络延迟增大问题的分析方法,并通过一个案例,掌握了如何用hping3、tcpdump、Wireshark、strace 等工具,来排查和定位问题的根源。简单回顾一下,网络延迟是最核心的网络性能指标。由于网络传输、网络包处理等各种因素的影响,网络延迟不可避免。但过大的网络延迟,会直接影响用户的体验。所以,在发现网络延迟增大的情况后,你可以先从路由、...

2019-09-20 15:01:00 224

转载 Linux性能优化实战:案例篇-网络请求延迟变大了,我该怎么办?(40)

一、上节回顾上一节,我们学习了碰到分布式拒绝服务(DDoS)的缓解方法。简单回顾一下,DDoS利用大量的伪造请求,导致目标服务要耗费大量资源,来处理这些无效请求,进而无法正常响应正常用户的请求。由于 DDoS 的分布式、大流量、难追踪等特点,目前确实还没有方法,能够完全防御DDoS 带来的问题,我们只能设法缓解 DDoS 带来的影响。比如,你可以购买专业的流量清洗设备和网络防...

2019-09-20 15:01:00 1733

转载 Linux性能优化实战:案例篇-如何优化 NAT 性能?(下)(42)

一、上节回顾上一节,我们学习了 NAT 的原理,明白了如何在 Linux 中管理 NAT 规则。先来简单复习一下。NAT 技术能够重写 IP 数据包的源 IP 或目的 IP,所以普遍用来解决公网 IP 地址短缺的问题。它可以让网络中的多台主机,通过共享同一个公网 IP 地址,来访问外网资源。同时,由于 NAT 屏蔽了内网网络,也为局域网中机器起到安全隔离的作用。Linux 中...

2019-09-20 14:57:00 363

转载 Linux性能优化实战:Linux 性能优化答疑(五)(45)

一、上节回顾专栏更新至今,四大基础模块的最后一个模块——网络篇,我们就已经学完了。很开心你还没有掉队,仍然在积极学习思考和实践操作,热情地留言和互动。还有不少同学分享了在实际生产环境中,碰到各种性能问题的分析思路和优化方法,这里也谢谢你们。今天是性能优化答疑的第五期。照例,我从网络模块的留言中,摘出了一些典型问题,作为今天的答疑内容,集中回复。同样的,为了便于你学习理解,它们并不...

2019-09-20 14:44:00 141

转载 用图像算法增强夜视效果

下面分别为原图,处理1(图像),处理2(htk库)转载于:https://www.cnblogs.com/niulang/p/11556802.html

2019-09-20 14:05:00 1129

转载 Linux性能优化实战:套路篇-网络性能优化的几个思路(下)(44)

一、上节回顾上一节,我们学了网络性能优化的几个思路,我先带你简单复习一下。在优化网络的性能时,你可以结合 Linux 系统的网络协议栈和网络收发流程,然后从应用程序、套接字、传输层、网络层再到链路层等每个层次,进行逐层优化。上一期我们主要学习了应用程序和套接字的优化思路,比如:在应用程序中,主要优化 I/O 模型、工作模型以及应用层的网络协议;在套接字层中,主要优化套...

2019-09-20 12:05:00 265

转载 Linux性能优化实战:套路篇-网络性能优化的几个思路(上)(43)

一、上节回顾上一节,我们了解了 NAT(网络地址转换)的原理,学会了如何排查 NAT 带来的性能问题,最后还总结了 NAT 性能优化的基本思路。我先带你简单回顾一下。NAT 基于 Linux 内核的连接跟踪机制,实现了 IP 地址及端口号重写的功能,主要被用来解决公网 IP 地址短缺的问题。在分析 NAT 性能问题时,可以先从内核连接跟踪模块 conntrack 角度来分析,...

2019-09-20 10:59:00 542

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除