本文讨论了silly模块中的errno设计,旨在提高错误处理的直观性和可比较性。通过将C层错误码转换为silly.errno类型,简化了错误判断,避免了因文件结束和读取超时导致的死循环问题,强调了符合直觉的重要性。
silly是一个基于Lua的高并发网络框架,最近为了增加etcd支持,作者决定给定时器增加取消功能。作者使用内存池解决session到node指针的映射问题,通过计算偏移量反向推理出对应的node指针的值。作者优化了代码,减少闭包的创建,降低代码重复度,并优化性能。
silly是一个基于Lua的高并发网络框架,最近为了增加etcd支持,作者决定给定时器增加取消功能。作者使用内存池解决session到node指针的映射问题,通过计算偏移量反向推理出对应的node指针的值。作者还优化了代码,利用浪费的4字节减少闭包的创建,降低代码重复度,优化性能。整个数据结构包括node、page、pool、slot_root和slot_level。
最近在给silly增加prometheus数据库支持时,发现在docker中,silly占用了将近110MiB虚拟内存,而在宿主机中只有48.32MiB。通过查看虚拟内存分配和系统调用,发现一些大的匿名内存段和jemalloc分配的内存大小非常接近。进一步分析发现,这是glibc的一个特性,用于提高性能。同时还发现了一个奇怪的现象,一块大内存包含了一个文件的内存映射,经过验证发现是因为jemalloc在mmap分配内存后立即使用munmap释放了这块地址空间。这提示我们在监控内存分配时需要同时监控mmap和munmap系统调用。
最近在给silly增加prometheus数据库支持时发现,在docker中,silly刚起动就占了将近110MiB虚拟内存。通过查看虚拟内存的分配,发现其中一块内存大小和jemalloc向应用程序分配的内存大小非常接近,怀疑这块内存就是jemalloc所使用的虚拟内存大小。通过使用strace确认了这一点。在docker中查看110MiB内存来源时发现一大块内存一个字节都没有使用,怀疑是glibc的一个bug,但后来发现这是glibc的一个特性。同时还发现一个奇怪的现象,一块大内存包含了一个文件的内存映射,经过分析发现是jemalloc在mmap分配了一块内存后,随即使用munmap给释放了。这给了一个提示,监控内存分配时需要同时监控mmap和munmap系统调用。
silly是基于Lua语言的Coroutine机制而实现的一个高并发网络框架。 其coroutine调度机制很 … 继续阅读“为silly增加了互斥锁” The post 为silly增加了互斥锁 first appeared on 重归混沌的BLOG.
silly是基于Lua语言的Coroutine机制而实现的一个高并发网络框架。 其coroutine调度机制很 ... 阅读更多
最新抽了点时间给silly增加了一个silly.patch模块,用于对热更新提供一些有限的支持。 热更新最麻烦 ... 阅读更多
最近一个月都在重构silly, 包括其工作模式以及一些扩展库的实现基本上都被重写了。 其实coding的时间并 ... 阅读更多
前两天在编写一个新服务器程序时才意识到,多台不同类型的服务器相互通信,服务器仅监听一个端口号是非常不方便的,比 ... 阅读更多
最初, 我仅仅最只想将silly实现成一个socket异步框架, 每一个socket有数据或事件过来直接将注册 ... 阅读更多
silly的socket模块最初是使用epoll实现的, 后来为了在mac上开发就加入了kevent, 然后使 ... 阅读更多
自从写了第一个假server之后, 我就一直在想真正的处理高并发的server是如何做的。然后我就研究了sky ... 阅读更多
I started with thestoryofharper.com and then I created the site for hiromi and myself. So after writing all the cool classes to make this easy I decided to make the blogs.nata2.org site and then...
This is an age of innovation. Recently, more and more people are devoted into activities that is fun, infeasible before, requiring combined effort of many people, but not SO useful. Example 1:...
Apparently, the article Weapons Of Mass Stupidity is enough to garner you attention by the FBI. woah. That is rather messed up.
So I pretty much finished my project for work. I am done and now it is sent to another group to test it. Wooha. this weekend was nice. I finally got some sleep. but for some reason I wasted all of...
完成下面两步后,将自动完成登录并继续当前操作。