哈希表经常会碰到冲突的问题:两个不同的键值的哈希值碰巧相同了。
以前的冲突解决办法是,把坑位改成链表,把所有冲突的值用链表串起来
但在 64 位宽的机器上,一个指针占 8 个字节的空间,链表的空间消耗就比较大了
多年前收藏了一个 navicat 免费版,差不多够用了...
我改了一个文件,reload 它需要的时间是毫秒级的,重启容器就太麻烦了...
另外一个办法 (其实更简单点...) 是按背包问题的方法做...
这是个最优化问题,可以用 MILP 解决
设 Talk input i 的事件段是从 b_i 开始,时长为 L_i
Lunch 是个特殊事件,可以设 b_0 = 12:00, L_0 = 60min
对于 Networking event, 可以设 4:00 <= b_n <= 5:00
我们还可以引入一系列变量 x_ij, 如果 i 事件后如果紧接是 j 事件,那么 x_ij = 1, 否则 x_ij = 0
那么我们有:
\sigma_{i}{x_ij} = 1
\sigma_{j}{x_ij} = 1
x_ij (b_j - b_i - L_i) >= 0 (*)
b_i >= 9:00
b_i + L_i <= b_n (都在 networking event 前面)
binary x_ij
对于式子 (*), 它是非线性的,怎么办呢?
https://download.aimms.com/aimms/download/manuals/AIMMS3OM_IntegerProgrammingTricks.pdf 里有介绍怎么把它写成线性的
然后把这些约束都放到 solver 求解,如果出现 subtour (事件排成一个圈), 动态添加一个约束,直到最后得出一个解。
上面解决了一天内排日程的问题,如果要排很多天怎么办?可以把第二天的 Lunch 和 Networking 都 +24:00, 然后在两天之间塞进一个 Rest 事件解决。
Open addressing 可以减少 hash 碰撞情况下的内存占用 (不需要海量内存来存指针啦), 少了指针跳转减少 CPU cache miss
Open addressing 探测下一个可用 slot 的方式叫 probing.
Pseudo random probing 相比最简单的 linear probing, 可以减少 worst case probing 的遍历 (这种情况叫 primary clustering), 但是也有可能会增加一丢丢 cache miss ...
对 Ruby 里大量出现的小哈希表来说,基本没影响
风险是... 不知道会不会带来新的 hashDos...
你目的是尽量减少各环境的差别,但是它们还是有区别的
开发环境的基本需求就是改一点就马上能看到一点效果. 对于 Rails 来说,可以 eager load 然后通过监听文件系统事件来重载对应文件 (就和 webpack 一样), 这样开发环境和生产环境就都能统一到 eager load 了。
Docker 这一套在 Linux 上开发是最流畅的。但你如果换别的操作系统,在容器里文件系统事件往往比原生事件慢几百倍,甚至还不一定有文件系统事件 ... 在容器开发只能回到 lazy load... 这时不在容器开发反而可以更容易一致...
我觉得容器更适合做编译型语言的开发,尤其是做不了热重载的语言。而虚拟机语言其实和容器是有不少功能重复的地方的
Canvas 好,写 shader 才能流畅
其实用 pg 的 LISTEN / UNLISTEN / NOTIFY 语句做订阅说不定更高效
其实现在纯线程可以解决 c10k 了,不过每个线程栈非常小 -- 其实就和 Fiber 相差不多. 我觉得线程是比较容易做对出东西的,但是 Ruby 的线程栈不好做小... 所以在做个能把栈弄小的语言...
这是个在 Mac 上用 Docker 的方案
台式机或者虚拟机 linux, 在 Mac 上通过 Veertu 远程执行各种 docker 命令,然后目录通过 sshfs/osxfuse 挂载到 Mac 上
看起来有点复杂,但其实比官方的 Docker for Mac 坑少...
觉得 jb 更好,那些 dsl 没必要...
最简单的解决办法是:夹沟一下减少些请求量,或者让它不需要返回这么多
RubyMine 就是类似这样实现补全的,不过它不用起 pry
Docker for Windows 坑也挺多的,例如可执行文件的属性没有啦,git clone 回来的换行符被转了啊之类的
#2 楼 @tablecell 有区别,close 了 write 但没 close read.
你可以先 sock.close_write
再读,马上就能读到 EOF.
不然只能按照 HTTP 协议的,解析响应 header 的 Content-Length 来读。
我给两个简易的解决建议... :
A: 换 pg B: 换工作
还有个 JsonAPI, 都不看好
上次招了我,这次给我招同事...
如果你前面的行不删掉,内存不删掉,那还不如全部一次性读出来...
mmap 的读取方式其实效率更高,把文件做内存映射,然后操作系统去优化,如果没必要就不会全部读进内存里
能混用的啊
sass-loader 的选项会直接传给 node-sass, 你需要这两个:
bundle show xxx_gem
+ '/app/assets/stylesheets' 的结果传给它@tablecell 这里你没法用 eof? 去查,因为只要连接没关闭它都还没 eof, 但是作为一个 http 请求,客户端还在等响应,客户端不会现在就关请求的
没问题的呀
受宠若惊... 忙起身灌水
可能售后的工资比较便宜...
#51 楼 @flowerwrong 域名应该到期了被人抢注了吧...