{"version":"https://jsonfeed.org/version/1.1","title":"苏迟但到的主页","home_page_url":"https://kexohproject.pages.dev","feed_url":"https://kexohproject.pages.dev/json/","description":"<p>你好，欢迎访问个人主页！</p><p>擅长密码学，安全分析，数字水印等技术。</p><p>你可以联系我通过:findmykexin@gmail.com或者知乎私信。</p><p>我的知乎链接：<a href=\"https://www.zhihu.com/people/su-chi-dan-dao\" rel=\"noopener noreferrer\" target=\"_blank\">苏迟但到 - 知乎 (zhihu.com)</a></p><p>我的github链接：<a href=\"https://github.com/kexinoh\" rel=\"noopener noreferrer\" target=\"_blank\">kexinoh</a></p>","icon":"https://kexohcdn.gptapi.cyou/kexohproject/production/images/channel-2e54d141ee195646ca12a9d16507a908.jpg","favicon":"https://kexohcdn.gptapi.cyou/kexohproject/production/images/favicon-340a2925d02a0386f3b954a032834917.jpg","authors":[{"name":"苏迟但到"}],"language":"zh-cn","items":[{"id":"DhB7MWbLvpa","title":"一段相同的lua代码执行1百万次，在不同的地方执行它的执行时间会有70倍的差距，这是为什么？","content_html":"<p data-pid=\"TQ351shD\">这是由于lua的local机制导致的。</p><p data-pid=\"_z-M9LS5\">虽然你代码没有贴出来，我都没看懂写了啥。但是99%的概率是因为lua的local机制。</p><p data-pid=\"Plws9LxP\">local是指局部变量的意思，所以在代码中会将变量存储在寄存器中。</p><blockquote data-pid=\"3dEc1xVH\">自Lua 5.0之后，Lua采用了一种类似于寄存器的虚拟机模式。Lua用<a href=\"https://link.zhihu.com/?target=http%3A//wuzhiwei.net/ds_app_stack\" class=\" wrap external\" target=\"_blank\" rel=\"nofollow noreferrer\">栈</a>来储存其寄存器。每一个活动的函数，Lua都会其分配一个栈，这个栈用来储存函数里的活动记录。每一个函数的栈都可以储存至多250个寄存器，因为栈的长度是用8个比特表示的。<br/>有了这么多的寄存器，Lua的预编译器能把所有的local变量储存在其中。这就使得Lua在获取local变量时其效率十分的高。</blockquote><p data-pid=\"1WjM6sQJ\">而全局变量会存储在内存当中，那么寄存器和内存之间的读取速度差异就是这两个速度的差异来源了。</p>","content_text":"这是由于lua的local机制导致的。\n\n虽然你代码没有贴出来，我都没看懂写了啥。但是99%的概率是因为lua的local机制。\n\nlocal是指局部变量的意思，所以在代码中会将变量存储在寄存器中。\n\n> 自Lua\n> 5.0之后，Lua采用了一种类似于寄存器的虚拟机模式。Lua用栈来储存其寄存器。每一个活动的函数，Lua都会其分配一个栈，这个栈用来储存函数里的活动记录。每一个函数的栈都可以储存至多250个寄存器，因为栈的长度是用8个比特表示的。\n> 有了这么多的寄存器，Lua的预编译器能把所有的local变量储存在其中。这就使得Lua在获取local变量时其效率十分的高。\n\n而全局变量会存储在内存当中，那么寄存器和内存之间的读取速度差异就是这两个速度的差异来源了。","date_published":"2023-05-13T13:31:37.000Z","_microfeed":{"web_url":"https://kexohproject.pages.dev/i/lua170-DhB7MWbLvpa/","json_url":"https://kexohproject.pages.dev/i/DhB7MWbLvpa/json/","rss_url":"https://kexohproject.pages.dev/i/DhB7MWbLvpa/rss/","guid":"DhB7MWbLvpa","status":"published","itunes:title":"New Article Title for iTunes","date_published_short":"Sat May 13 2023","date_published_ms":1683984697000}}],"_microfeed":{"microfeed_version":"0.1.2","base_url":"https://kexohproject.pages.dev","categories":[{"name":"Education","categories":[{"name":"Language Learning"}]},{"name":"Technology"}],"subscribe_methods":[{"name":"RSS","type":"rss","url":"https://kexohproject.pages.dev/rss/","image":"https://kexohproject.pages.dev/assets/brands/subscribe/rss.png","enabled":true,"editable":false,"id":"4KlfbtkEfzy"},{"name":"JSON","type":"json","url":"https://kexohproject.pages.dev/json/","image":"https://kexohproject.pages.dev/assets/brands/subscribe/json.png","enabled":true,"editable":false,"id":"DVFm7TYiNSq"}],"description_text":"你好，欢迎访问个人主页！\n\n擅长密码学，安全分析，数字水印等技术。\n\n你可以联系我通过:findmykexin@gmail.com或者知乎私信。\n\n我的知乎链接：苏迟但到 - 知乎 (zhihu.com)\n\n我的github链接：kexinoh","copyright":"©2024","itunes:type":"episodic","items_sort_order":"newest_first"}}