- 博客(105)
- 资源 (3)
- 收藏
- 关注
翻译 Golang 逃逸分析
看到Golang的逃逸问题看到一篇文章总结的不错,翻译如下Garbage collection is a convenient feature of Go - automatic memory management makes code cleaner and memory leaks less likely. However, GC also adds overhead as the program periodically needs to stop and collect unused obje
2021-05-27 12:13:34
269
原创 对HTTP/2的部分理解
HTTP/2是对HTTP1.1的升级,具体来说HTTP1.1存在以下引起效率低下的问题并发请求问题 Header内容重复从HTTP历史来看HTTP协议的问题HTTP1.01个请求1个TCP连接,如果要请求一个网站有大量内容,就会建立大量的到服务器的连接,导致过多的延迟和资源消耗。HTTP1.1为了解决1.0的问题引入了默认带流水线的持久连接支持连接的复用,实现在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。一个包含有许多图像的网页文件的多个请.
2021-05-26 15:53:07
363
1
原创 设置Golang的开发环境
Golang开发环境涉及以下两个方面:语言环境 IDE设置语言环境就是要安装golang,由于国内GFW问题,要根据需要做一些设置golang的安装有如下几步 下载安装文件 1、安装文件安装你可以在https://golang.google.cn/dl/这里下载golang的安装文件2、包管理器安装以ubuntu为例sudo apt-get install golang安装后可以查看下具体的安装版本go version由于我是mac我就直接brew i.
2021-05-21 16:54:50
2967
2
原创 Golang相关资源整理
https://github.com/golang/go Golang源码https://golang.google.cnhttps://studygolang.comFuture / promise in golang 使用golang实现Future功能
2021-05-20 16:01:36
153
原创 Netty与网络协议资料整理
最近一直在使用Netty实现一系列网络协议代理,中间看到一些文章不错做下整理netty对http协议解析原理(一)netty对http2协议的解析上面两篇是关于Netty对Http协议和Http2协议的支持,以及协议一些重点知识点的使用netty实现socks5协议自己动手开发Socks5代理服务器Socks4协议上面两篇是关于socks5的,原来看到一篇很好的原文找不到了,暂且就这两篇把https://github.com/liukai90/netty-prox...
2021-05-20 15:35:16
172
原创 redis的启动关闭脚步
function usage(){ catusage redis.shredis.sh startredis.sh stopredis.sh restartUSAGE}function start(){ echo "start redis..." redis-server /usr/local/etc/redis.conf
2014-05-18 00:14:03
2317
原创 早期写的一个抓取程序留个纪念
#!/usr/bin/env python#-*- coding:utf-8 -*-# 采集公交url地址信息,并保存到文件中"""1、源地址http://bus.mapbar.com/beijing/poi/5af90Q5CN8BH2、匹配内容的模型类3、数据保存子类4、逻辑控制类"""import abcfrom Queue import Queuefrom threa
2014-04-12 22:08:36
1120
转载 vim的中文文档
文档地址:http://sourceforge.net/projects/vimcdoc/files/按照方法Linux:下载的 tar.gz 包括所有翻译过的 vim 文档 (.cnx 文件)。先将其解压缩: tar zxvf vimcdoc-.tar.gz然后进入 vimcdoc- 目录并执行 ./vimcdoc.sh -i就可以了。该安装程
2013-12-27 20:55:41
842
原创 用PHP解决万恶的BOM
<?php$path = dirname(__FILE__);scandDir($path);function bomtoutf8($filename){ $ef = 239; $bb = 187; $bf = 191; if (is_dir($filename)) return; $fd = fopen($filename, "rb"); if (!$fd) exit
2013-06-27 15:10:37
1125
原创 linux下用C写正则匹配IP和邮箱
一时想娱乐一下,写了一段小程序,使用linux的正则库匹配ip和email地址#include #include #include #include #include #include #include using namespace std;string strtolower(string str);int main(int argc, const cha
2013-06-08 17:58:19
2570
原创 编译PHP的windows版本
下面是在看《Sams.Extending.and.Embedding.PHP》的第4章 编译PHP的一些实践记录,相应中文版 地址http://www.walu.cc/phpbook/4.1.md,书上关于windows部分的资料和命令是05年的,已经很老了下面找到PHP官方关于php在windows下编译的说明进行操作和记录。php官方windows编译说明:https://wiki.php.n
2013-05-16 21:32:40
8465
原创 Vim自定义函数
"toggle number displaymap tn :call Toggle_Number()function! Toggle_Number() if !exists("b:togglenum") let b:togglenum=1 endif if b:togglenum==1 execute "set nonu"
2013-04-16 11:05:32
3583
原创 C++实现排列组合
很多地方都遇过排列组合,比如计算问题的规模,数据的大小,占用磁盘空间多少等。原理部分借鉴网上一篇文章,道理已经说的很清楚就不重复了。(1) 全排列:全排列表示把集合中元素的所有按照一定的顺序排列起来,使用P(n, n) = n!表示n个元素全排列的个数。例如:{1, 2, 3}的全排列为:123;132;213;231;312;321;共6个,即
2013-04-10 23:18:56
23658
1
原创 libmemcached的一致性hash实现源码分析
由于工作上对多语言之间数据缓存一致性的需要,个人分析了libmemcached的实现,对底层一致性的实现有了一些了解,这里分享一些分析的一些过程,也给自己做个笔记。我使用是php,从php的扩展开始分析应该来说是最方便的。这里从php扩展的Memcached::add方法入手去找到需要的内容。方法文件为php_memcached.cadd方法的php扩展代码如下(文件m
2013-03-29 21:57:15
2962
原创 PHP中使用pcntl和libevent实现Timer功能
定时器在其他语言的实现中可能更方便或者已经自带了有,由于PHP在请求执行后马上回收资源,减少了由于编码造成的不安全因素,但是由于没有全局的应用环境(类似于.NET, JAVA, 甚至与python的应用),在处理异步执行的时候会有不少麻烦,也就是自己没法解决需要依赖于其他应用程序,前期测试只用libevent,但是必须阻塞才能执行,这样是不符合要求的,这里通过pcntl和libevent就方便了,
2013-03-21 11:56:34
5087
原创 在php中使用Semaphore的进程锁功能
在大多数的php开发中很少使用到锁机制,但是有些情况确实需要锁来处理,比如:缓存数据,如果数据丢失就会导致突发很多后端数据请求,可能后端就会挂掉,这时锁机制就有用出了,这里主要介绍基于Semaphore的内存锁,由于WIndows下没有扩展实现,需要在linux下测试。<?php $key = ftok('/tmp', 'a');$id = sem_get($key);if (s
2013-03-16 23:01:23
4769
翻译 怎样在Ubuntu下开启PHP的pnctl进程管理扩展
Howto: Enable PCNTL in Ubuntu PHP installations怎样启用Ubuntu(deb包)安装PHP的PCNTLPCNTL in PHP allows for some handy advanced “trickery” using the OS process functions inherent in Linux (*nix?). I be
2013-03-16 21:15:14
3664
原创 python中的嵌套类
在.NET和JAVA语言中看到过嵌套类的实现,作为外部类一个局部工具还是很有用的,今天在python也看到了很不错支持一下。动态语言中很好的嵌套类的实现,应该说嵌套类解决设计问题同时简化了程序,值得学习。#!/usr/bin/env pythonimport threading, sysdef nested1(timeout): def _1(function):
2013-03-16 19:03:24
36197
原创 使用Vim 插件管理程序Vundle的vim配置
if(has("win32") || has("win95") || has("win64") || has("win16")) let g:isWin=1else let g:isWin=0endifmap :wimap :w"map :NERDTreeTogglelet g:NERDTree_title = "[NERD T
2013-03-12 13:49:12
6482
原创 Linux下用openssl库做md5加密
这篇文件借鉴网上的文件,然后自己做了一些修改,主要是对测试的过程中发现一些不一致和不详尽导致一些麻烦的解决openssl安装Centos yum install openssl openssl-devel#include #include #include #include int main(int argc, char** argv) { MD5_CTX
2013-03-11 16:39:27
5522
原创 Yii隐藏index.php
1.开启apache的mod_rewrite模块 去掉LoadModule rewrite_module modules/mod_rewrite.so前的“#”符号 确保中有“AllowOverride All”2.在项目中的/protected/config/main.php中添加代码: 'components'=>array(
2013-01-19 16:58:35
1336
原创 java执行异常
Exception in thread "main" java.lang.NoClassDefFoundError: TestWrap/classCaused by: java.lang.ClassNotFoundException: TestWrap.class at java.net.URLClassLoader$1.run(Unknown Source)
2013-01-19 16:57:43
767
原创 ZendFramework官方提供的性能优化没有实际意义
昨天把zf的官方性能优化都做了一遍,本来希望官方的性能优化方案能够真正起到优化效果,中间由于bug误以为有效果了,还发了一篇博文,可惜后来一查完全越优化越差了。下面简单吧ZF官方的性能优化说一下,还有最新的(ZF1版,第二版还没有怎么用)ZF1.12中添加的autoload_classmap的机制,设计cache的部分就不提了,那个减少了代码的执行逻辑,性能提升是肯定的(还需要对比缓存获取过程和减
2012-11-29 17:21:41
2136
原创 Yii使用ZF的分页方式
使用类似ZF的方式分页,需要单独写一个分页类,重载run方法,从CPagination得到需要的分页数据,然后使用控制器的renderPartial方法,不能使用render方法这个方法会在视图的控制器目录下找文件,这样指定的位置就不准确了。<?php/*** 解决使用rpc来的数据没有相应的数据提供者的问题* 这里不使用dataProvider,仅仅用分页器和模板来显示分页页面
2012-11-29 16:35:48
1207
原创 编程珠玑第二章的算法实现
我这里由于是对程序算法的实现,没有弄这么大的数据量(40亿的32位整数对于文本文件来说估计要3G以上的存储空间),我这里只使用4千万的数据量,也就是百分之一的量,不多说直接上代码。#include #include #include #include #include #define GETBIT(NUM, IDX) ((NUM>>(IDX))&1)#define INI
2012-11-26 20:34:41
736
原创 php使用apc来实现mutex锁
最近的工作需要在cache层加一个lock的机制,google了一些资料发现apc没有实现(好像eAccelerator有,没用过),只有自己整一个,用apc实现也比较简单protected static function isMutex($key){ if (ApcCache::exists("MUTEX_" . $key)) return true; return false
2012-11-06 14:58:54
1576
原创 编程珠玑第1章的算法实现
断断续续看了几天,在实现几个算法后,总算把这个代码写出来了,测试耗时在10s 算法真强大:)#include #include #include #include #define MAX 1024*1024*1024typedef unsigned char BYTE;/*enum bool {1,0};*/int main(){ char str[10]
2012-10-31 23:23:41
738
转载 快速排序--C语言
快速排序是对冒泡排序的一种改进。它的基本思想是:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一不部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 假设要排序的数组是A[1]……A[N],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它的数都放到它前面,所有比它大的
2012-10-28 19:42:38
919
3
原创 插入排序算法C语言实现
#include #include //插入排序voidmain(){ int a[]={0,2,3,7,5,2,9,3,1,98,29}; int t; for(int i=1;i<sizeof(a)/sizeof(*a);i++) { //将赋值移除内循环进行加速 t = a[i]; int j;
2012-10-27 16:14:13
1436
原创 使用qsort进行快速排序
#include #include static int compare(const void *p1, const void *p2){ if (*(int *)p1 > *(int *)p2) return 1; else if (*(int *)p1 < *(int *)p2) return -1; else
2012-10-27 15:36:05
650
原创 归并排序算法C++的实现
#include using namespace std;void merge(int a[], int first, int mid, int last, int c[]){ int i = first,j = mid + 1; int m = mid, n = last; // k 的值与 i的值必须相等,要不无法把c的值回写给a int k = fi
2012-10-27 13:23:33
734
原创 对Shanty-Mongo使用过程的一些记录
由于工作上需要用到MongoDB,根据进度原因自己封装了一个简单的实现,当然可以完成现有的任务,在一次测试中发现异常,虽然自己通过封装其他扩展类的方法解决了问题,但是感觉到自己对MongoDB和MongoDB的php扩展了解不足,所以找了一个开源的产品Shanty-Mongo了解下其他实现方式。这个开源库是基于ZendFramework开发的,他对php本身和其他产品也有要求:PH
2012-10-24 20:38:27
1312
原创 ZendFramework资源加载过程分析
本篇文章主要是在分析ZendFramework1.11版对自定义的Resource的加载过程,也是个人在分析过程中遇到问题的整理1、为了了解这个过程我们先从网上已有的Resource的开发实例(正确的示例)配置产品在library目录下添加resource目录作为个人开发resource插件的路径;增加一个View插件,替换掉现有的bootstrap.php下面的initView方法
2012-10-15 12:34:43
1491
翻译 使用vim编辑文件时遇到没有权限的解决办法
Save a file you edited in vim without the needed permissions (no echo)原文地址:http://www.commandlinefu.com/commands/view/5147/save-a-file-you-edited-in-vim-without-the-needed-permissions-no-echoS
2012-09-30 14:52:11
4069
原创 我的vim linux下配置
"*******************************************"全局条件"*******************************************"设定操作系统if has("win32") || has("win64") || has("win32unix") let g:isWin = 1 let $VIMFILES
2012-09-29 14:56:59
1249
原创 php5.3在windows下使用PEAR
在看一个php框架性能比较的文章时,文章中有各框架UML类图,我想自己画也太费功夫了,有没有自动生成的方案,google下发现真还有http://blog.sina.com.cn/s/blog_698b48a60100lws9.html,通过pear的UML库就可以,由于是php5.3对pear进行了升级不是原来的工具和操作流程,折腾了下发现就用http://blog.pear.php.net
2012-09-29 12:09:20
1127
原创 mysql 的权限解释
Rights and PrivilegesPrivilegeDescriptionALLAll privileges except GRANT OPTIONALTERUse of ALTER TABLEALTER ROUTINEUs
2012-09-29 09:06:28
632
转载 Vim – Open file in existing window new tab on Windows
Opening files in Vim editor via context menu is quite simple, but what if I want to open a file in a new tab in existing window?The solution is quite simple, at least on my Windows 7 machine, but I
2012-09-28 16:32:58
1957
原创 php性能优化少被注意的部分
下面内容来源于网络和Pro PHP Application Performance1、使用require vs require_once参考:http://www.laruence.com/2012/09/12/2765.htmlrequire is faster than require_once due to the high number of operational
2012-09-28 16:20:23
728
MongoDB权威指南
2012-10-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅