c中就有typedef 就是定义一个类型别名。
typename是c++中的,只是名字上和typedef相似,有时候还挨着用,就会感觉显得啰嗦。
typename用来告诉编译器后面这个东西是个名字空间或类中定义的类型,而不是成员变量
参考:
DevOps
c中就有typedef 就是定义一个类型别名。
typename是c++中的,只是名字上和typedef相似,有时候还挨着用,就会感觉显得啰嗦。
typename用来告诉编译器后面这个东西是个名字空间或类中定义的类型,而不是成员变量
参考:
上面的VIP专享栏,每一项都注明了VIP专享,从技术角度来看,这个属于重复的元素,很不简洁,多余的东西就得去掉;但是,从产品设计的角度来讲,重复是为了强调,就是要通过视觉来刺激你,买VIP吧,买VIP吧,买V….
第二个参数的含义不同,make slice时,第二个参数是大小,make map时 ,第二个参数是容量。
脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
#!/bin/env php <?php $filter = isset($argv[1])?$argv[1]:""; $arr = explode(".", $filter); while(!feof(STDIN)) { $line = trim(fgets(STDIN)); if (!$line) continue; $result = array(); parse_str($line, $result); $notFound = false; foreach($arr as $key) { if ($key == "") continue; if (!isset($result[$key])) { $notFound = true; break; } $result = $result[$key]; } if ($notFound) continue; if (is_array($result)) { print_r($result); echo "\n"; continue; } if (is_string($result)) { echo "$result\n"; } } |
受jq的启发
这个parser很奇怪, 处理的是 value 嵌套value的情况,生产上有这种情况,但是很少见。
tcp的滑动窗口是用来流控的,但是,如果一方不遵守,会怎样呢?如下:
我们发现,虽然8085一直提示说win只有430,但是59822却完全无视,直接发送1448大小的数据; 8085也没有生气,也没有不ack,是不是很好玩。
好景不长,59822 觉得不好意思了,改发500大小的数据包了:
对于甲方来说,发送了一个小的win ,乙方未必按照小的win发送数据,只要甲方总能ack乙方发送的所有数据,乙方就可以总是发送一个很大的数据包;对于甲方来讲,其实可以通过不ack乙方,或者ack部分数据来制服乙方的。
自从雄飞提离职,我就开始了解lua版本的dmp,开始是性能优化,修补丢数据的情况,添加监控,分析指纹数据的流程,直到添加caid的支持。
最近这些事情不敢太随意,步步细心的去做,只是最近添加caid的事情,催的有些急,测试不到位,出了不少问题。
本来答应凯超那里做一些规则引擎的配置节目的事情,以及试金石的优化,都没时间做呢。
总结:
如果在wsl中打开了某个目录,则在Windows上执行删除操作,虽然执行了删除操作,但是还是能看见,只是不能访问,直到wsl中退出该目录,该目录就会自动删除掉了
lua 的 require 会自动避免重复加载的,如:
hello.lua
1 2 3 4 5 6 7 8 9 |
local a = {} local i = 0 print("loading a ...") function a:say() print(i) i = i + 1 end return a |
要想重复加载也行:
1 |
package.loaded[luafile] = nil |
由此也可以通过package.loaded 知道都load了哪些包了:
下图是htop能直观看到的数据:
第一个CPU很忙,太多的时间花费在了内核,为什么内核那么消耗CPU:
该CPU主要干了三件事:
连续执行如下命令会发现acpi中断非常多,而且确实都是发生在CPU0上的,自然处理该中断的也就是CPU0了;如果说要把网卡软中断和acpi中断分开,那么就是,要么把acpi从CPU0挪走,要么把网卡软中断从CPU0挪走
1 |
cat /proc/interrupts |grep acpi |
https://github.com/openresty/lua-nginx-module#ngxsocketudp
udp 支持unix dgram , 不需要连接池,可以把connect的结果保存到全局变量,但是,每次用完就close也开销不大
tcp 支持unix stream, 通过set_keepalive 支持连接池