04 2014 档案

摘要:大体分为:事前估算(设计算法之前就估算此算法性能)和事后估算(运行后,通过收集数据)直觉上以为是事后估算为主,毕竟,实践是检验真理的标准嘛。事后收集数据才是比较靠谱的。不过,想法错了。现在才明白,以"事前估算"为主要办法。为什么事后估算的办法不怎么使用呢?1、输入的数据量没法真实模拟。比如输入的数据... 阅读全文
posted @ 2014-04-10 08:54 王滔 阅读(2157) 评论(0) 推荐(0)
摘要:本文主要是思维性的总结,是总结优化的方法学,对方面上面的错误进行总结。不会涉及到前端具体的技术,比如对js和css进行压缩、合并,减少http请求,缓存头控制等等。这些那本《高性能建站指南》都有现成的。 基于本人在多家公司分别遇到的网站速度与性能问题,多年所积累出的干货;有的开发10年经验,在遇到网站速度问题时,也仍然在犯同样的错误。一、背景与思维方式常见的情况:使用的是1m带宽(因为带宽是比较昂贵的资源,刚开始购买会比较少,起初够用了)。基于这个情况,是不是带宽少了呢?加带宽?js、css之类的文件也并没有压缩,为了提高高速度,那是不是应该要压缩一下呢?比如合并多个js文件,减少http请. 阅读全文
posted @ 2014-04-08 08:34 王滔 阅读(1669) 评论(0) 推荐(0)
摘要:为什么需要进行全文搜索呢?一个表中有a、b、c多个字段。我们使用sql进行like搜索的时候,往往只能匹配某个字段。或者是这样的形式:a LIKE “%关键词%”or b LIKE “关键词”这样子根本没法实现全文搜索,如果需要搜索整个表中所有出现过关键词”手机”的商品,一般要匹配商品的标题字段。而如果商品描述中出现”手机”关键词,则没法去匹配。全文搜索,就是不限制搜索某个字段,是对数据库中所有的内容做匹配,是全文级别的搜索。是针对所有内容都进行匹配。这需要预先建立好索引数据结构。比如记录哪个文档中出现过某个关键词。其实在11年的时候就已经研究过sphinx,理解还比较粗浅。那个时候没有在生产 阅读全文
posted @ 2014-04-07 11:34 王滔 阅读(2624) 评论(0) 推荐(0)
摘要:由于在公司要维护阿里云的linux服务器,我们的svn服务器就安在阿里云上面。所以经常会涉及到svn的维护操作。离职的时候编写交接文档,刚好有充足的时间写一篇说明介绍,此说明纯原创,不是从网上复制,手工根据个人理解写出来的。这里用作备忘,网络形式就是方便查阅。1、 如何创建一个新的版本库如果需要新开... 阅读全文
posted @ 2014-04-06 22:48 王滔 阅读(1997) 评论(0) 推荐(0)
摘要:极限编程敏捷开发是一种思想,极限编程也是一种思想,它与敏捷开发某些目标是一致的。只是实现方式不同。测试驱动开发是极限编程的一部分。1、极限编程这个思路的来源Kent Beck先生最早在其极限编程(XP)方法论中,向大家推荐“测试驱动”这一最佳实践,还专门撰写了《测试驱动开发》一书,详细说明如何实现。经过几年的迅猛发展,测试驱动开发已经成长为一门独立的软件开发技术,其名气甚至盖过了极限编程。[1]2、为什么测试驱动开发在实践中难以开展测试驱动开发,在国内很多公司难以实施。因为tdd(测试驱动开发)的办法是,写代码之前先编写测试代码,测试通过后再实现这个测试代码。很多人觉得这是浪费了时间。这样循环 阅读全文
posted @ 2014-04-06 10:25 王滔 阅读(599) 评论(0) 推荐(0)
摘要:疑问:为什么会涉及到分词方法学呢?为什么需要确定哪些是词语,哪些不是词语呢?为什么需要进行分词,如果不分词会是什么情况呢?分词的根本目的是为了搜索服务的,更确切的是为快速搜索而服务的。了解倒排索引后,就知道全文搜索需要分词了。理解一下正向索引(反向索引就是倒排索引,先产生了正向索引来搜索,后面才发明了反向索引):http://www.cnblogs.com/wangtao_20/p/3647193.html比如要搜索词语"湖南",那么意思是搜索哪些资料中带有关键词"湖南"。如果一篇文档中有2000个字,里面确实有文字"湖南"。但是要拿 阅读全文
posted @ 2014-04-06 10:23 王滔 阅读(7219) 评论(0) 推荐(1)
摘要:倒排索引也叫做反向索引(inverted单词也有反转的意思,只不过大家喜欢翻译成倒排索引)。 倒排索引在搜索引擎中经常用到,倒排索引也叫做反向索引。某天在想,为什么叫做倒排索引呢?倒过来的,反转过来的。那么,非倒排索引是什么样子的。解释一大堆。云里雾里。 后来知道,反向索引是相对正向索引而言的,那什 阅读全文
posted @ 2014-04-05 14:15 王滔 阅读(3710) 评论(1) 推荐(1)
摘要:缺乏产生背景的介绍。比如为什么会产生这种东西,在没有这种东西之前是什么一个情况。了解这些,对于解决实际问题可能帮助并不大,不过对于学习知识帮助很大。可以提升思维,知道这种东西是为解决什么问题而产生的。那么就不会盲目去模仿,有一个判断力。我们目前得到的只是知识的结果。理解起来困难,学起来就比较吃力。只注重知识结果,也不容易记忆。比如,在出现数据库系统之前,是文件系统来存储数据,会出现什么样的问题。于是专门的数据库系统解决了一些问题,独立于操作系统以外了。没有几本书讲解数据库系统的讲得比较详细,一般直接上结果了。再比如事务的思想从一本书得到是从现实中交易合同启发而产生的。倒排索引,为什么叫做倒排索 阅读全文
posted @ 2014-04-04 22:32 王滔 阅读(613) 评论(0) 推荐(0)
摘要:在linux下设置一个服务(或应用)开机自动启动有两类办法第一类:利用开机的时候,linux会自动执行某个文件里面的命令。那么把启动某个服务的命令,加到这个文件里面去。比如会执行/etc/rc.local里面的命令。把那个服务启动的命令加入到这个文件中去即可。当初公司服务器上配置svn开机自动启动,就是这样子操作的:vi /etc/rc.local里面内容如下:/etc/rc.d/init.d/svn.sh注:rc.local中填写脚本的路径,就会执行这个脚本。svn.sh是一个shell脚本,里面其实就是启动svn的命令。大家经常使用的 rc.local是习惯方面,也可以把命令写到其他文件中 阅读全文
posted @ 2014-04-04 19:53 王滔 阅读(651) 评论(0) 推荐(0)
摘要:能够使用service命令进行操作的,就是已经注册成为linux的系统服务了。window中也可以注册成为系统服务的办法。service命令用的次数真不少,就是比较多的关联点,用了很多次了,还是有些地方没打通,云里雾里的。所以才梳理一下这个技术知识点,理顺思路。此时我觉得,很有必要理解service命令的原理性知识了。了解service命令的来龙去脉,在解决实际问题中的帮助,结合实际应用,我对以下问题有帮助:1、如果从网上下载一个新的软件,安装到linux上面去。想注册成系统服务,我需要自己编写一个shell脚本文件才行。这个脚本文件如何编写呢?如果不了解servcie命令的机制。会漏掉一些东 阅读全文
posted @ 2014-04-04 18:24 王滔 阅读(29448) 评论(1) 推荐(2)
摘要:听到这样说法:hash是内存中使用的经典数据结构。内存是典型的随机访问设备。 为什么hash这种数据结构很适合内存使用呢?如何理解内存是随机访问设备呢? 因为我想知其所以然,如何理解背后的原因,我花费点时间来学习一番。 我之前学过搜索引擎中的倒排索引,其中的单词词典就是使用hash方式实现:对关键词 阅读全文
posted @ 2014-04-03 22:15 王滔 阅读(3906) 评论(1) 推荐(1)