• 7 个使用 bcc/BPF 的性能分析神器

    Posted by : lon.y@qq.com on 2017年12月15日

    使用伯克利包过滤器 Berkeley Packet Filter(BPF)编译器集合Compiler Collection(BCC)工具深度探查你的 Linux 代码。 在 Linux 中出现的一种新技术能够为系统管理员和开发者提供大量用于性能分析和故障排除的新工具和仪表盘。它被称为增强的伯克利数据包过滤器 enhanced Berkeley Packet Filter(eBPF,或 BPF),虽然这些改进并不是由伯克利开发的,而且它们不仅仅是处理数据包,

    阅读全文...

  • 谈谈 MySQL 隐式类型转换

    Posted by : lon.y@qq.com on 2017年12月15日

    前言 今天我们继续回到MySQL系列文章中,谈一谈MySQL中隐式类型转换。(其实我最早知道是在慢SQL优化中知道隐式类型转换概念的),在说隐式类型转换之前,首先我们通过一个实例来看看是怎么回事。 数据结构 本文中所有的操作,都是基于该数据结构(有兴趣的童鞋,可以实验): create table t_base_user(   oid bigint(20) not null primary key auto_increment,   name varcha

    阅读全文...

  • 不想再被鄙视?那就看进来! 一文搞懂Python2字符编码

    Posted by : lon.y@qq.com on 2017年12月15日

    程序员都自视清高,觉得自己是创造者,经常鄙视不太懂技术的产品或者QA。可悲的是,程序员之间也相互鄙视,程序员的鄙视链流传甚广,作为一个Python程序员,自然最关心的是下面这幅图啦 我们项目组一值使用Python2.7,虽然我们也知道Python3的诸多好处,也曾经蠢蠢欲动过,但由于各种历史原因,以及业务的压力,我们只可能继续使用Python2.7。更悲哀的是,我们组不是那么international,所以代码中还是涉及到大量的中文,因此偶尔也会遇到乱码以

    阅读全文...

  • 网页中文本朗读功能开发实现

    Posted by : lon.y@qq.com on 2017年12月15日

    标签朗读 正文分隔 事件处理 文本合成语音 前几天完成了一个需求,在网页中完成鼠标指向哪里,就用语音读出所指的文本。如果是按钮、链接、文本输入框,则还还要给出是什么的提醒。同时针对大段的文本,不能整段的去读,要按照标点符号进行断句处理。 重点当然就是先获取到当前标签上的文本,再把文本转化成语音即可。 标签朗读 这个很简单了,只用根据当前是什么标签,给出提示即可。 // 标签朗读文本 var tagTextConfig = { 'a': '链接', 'inp

    阅读全文...

  • 可能是目前最完整的前端框架 Vue.js 全面介绍

    Posted by : lon.y@qq.com on 2017年12月15日

    调试插件 在vue调试方面,可以选择安装chrome插件vue Devtools。打开vue项目,在console控制台选择vue面板。在Devtools工具中,可以选择组件,查看对应组件内的数据信息。也可以选择Vuex选项,查看该项目内Vuex的状态变量信息。 UI组件库 在vue组件库方面,个人不推荐使用UI组件库,毕竟自己造轮子的过程还是很有成就感的。当然,如果更重视开发效率,并且选择了vue2.0作为前端框架,那么饿了么推出的Element组件就是

    阅读全文...

  • MySQL 引擎特性:InnoDB崩溃恢复

    Posted by : lon.y@qq.com on 2017年12月14日

    前言 数据库系统与文件系统最大的区别在于数据库能保证操作的原子性,一个操作要么不做要么都做,即使在数据库宕机的情况下,也不会出现操作一半的情况,这个就需要数据库的日志和一套完善的崩溃恢复机制来保证。本文仔细剖析了InnoDB的崩溃恢复流程,代码基于5.6分支。 基础知识 lsn: 可以理解为数据库从创建以来产生的redo日志量,这个值越大,说明数据库的更新越多,也可以理解为更新的时刻。此外,每个数据页上也有一个lsn,表示最后被修改时的lsn,值越大表示越

    阅读全文...

  • MySQL 引擎特性:InnoDB IO 子系统

    Posted by : lon.y@qq.com on 2017年12月14日

    前言 InnoDB做为一款成熟的跨平台数据库引擎,其实现了一套高效易用的IO接口,包括同步异步IO,IO合并等。本文简单介绍一下其内部实现,主要的代码集中在os0file.cc这个文件中。本文的分析默认基于MySQL 5.6,CentOS 6,gcc 4.8,其他版本的信息会另行指出。 基础知识 WAL技术 : 日志先行技术,基本所有的数据库,都使用了这个技术。简单的说,就是需要写数据块的时候,数据库前台线程把对应的日志先写(批量顺序写)到磁盘上,然后就告

    阅读全文...

  • JavaScript 性能优化技巧分享

    Posted by : lon.y@qq.com on 2017年12月13日

    JavaScript 作为当前最为常见的直译式脚本语言,已经广泛应用于 Web 应用开发中。为了提高Web应用的性能,从 JavaScript 的性能优化方向入手,会是一个很好的选择。 本文从加载、上下文、解析、编译、执行和捆绑等多个方面来讲解 JavaScript 的性能优化技巧,以便让更多的前端开发人员掌握这方面知识。   什么是高性能的 JavaScript 代码? 尽管目前没有高性能代码的绝对定义,但却存在一个以用户为中心的性能模型,可以用作参考:

    阅读全文...

  • Linux 中命令链接操作符的十个最佳实例

    Posted by : lon.y@qq.com on 2017年12月13日

    Linux命令中的链接的意思是,通过操作符的行为将几个命令组合执行。Linux中的链接命令,有些像你在shell中写短小的shell脚本,并直接在终端中执行。链接使得自动处理变得更方便。不仅如此,一个无人看管的机器在链接操作符的帮助下能够十分有条理地运行。 Linux中的10个链接操作符 本文旨在介绍一些常用的链接操作符,通过简短的描述和相关的例子帮助读者提高生产力、降低系统负载、写出更加简短有意义的代码。 1. 和号操作符 (&) ‘&’

    阅读全文...

  • MySQL 引擎特性:InnoDB 同步机制

    Posted by : lon.y@qq.com on 2017年12月13日

    前言 现代操作系统以及硬件基本都支持并发程序,而在并发程序设计中,各个进程或者线程需要对公共变量的访问加以制约,此外,不同的进程或者线程需要协同工作以完成特征的任务,这就需要一套完善的同步机制,在Linux内核中有相应的技术实现,包括原子操作,信号量,互斥锁,自旋锁,读写锁等。InnoDB考虑到效率和监控两方面的原因,实现了一套独有的同步机制,提供给其他模块调用。本文的分析默认基于MySQL 5.6,CentOS 6,gcc 4.8,其他版本的信息会另行指

    阅读全文...