Lua是一门以性能著称的脚本语言,被广泛的应用在很多方面,比如很多游戏的插件。 很多时候,没有必要去考虑性能的问题,不过,如果我们在开始编写代码的时候就以更适当,性能更高的方式与结构去组织代码,对于程序最后的性能有很大的好处。这不是强调过早的优化代码,只是一种很好的代码编写习惯。 在Lua中,我们需要知道下面这些: 使用local 在代码运行前,Lua会把源码预编译成一种中间码,类似于
转载
2024-06-23 11:27:00
91阅读
写在前面这是6.824 lab3A的历史遗留问题。在3A中,要通过如下的速度测试(图中的时间是建议的运行时间):我的实现并不能稳定地通过这一测试:大多数情况下,代码严重超时。要经过数百秒才能执行完成。有时甚至会在运行了较长一段时间后,报“goroutine数量超过限制”这个错误。在这篇博客中,我试图解决这一问题。在经过修改后,代码能够稳定地以22s左右的速度通过测试。问题分析这个测试的代码如下。可
什么是LuaJIT标准 Lua 出于性能考虑,也内置了虚拟机,所以 Lua 代码并不是直接被解释执行的,而是先由 Lua 编译器编译为字节码(Byte Code),然后再由 Lua 虚拟机执行。LuaJIT 的解释器会在执行字节码的同时,记录一些运行时的统计信息,比如每个 Lua 函数调用入口的实际运行次数,还有每个 Lua 循环的实际执行次数。当这些次数超过某个随机的阈值时,便认为对应的 Lua
1.边看代码边写注释。 2.关注整体,忽略细节。 3.弄清功能需求。 4.多问开发者。 ...
转载
2021-09-26 23:47:00
109阅读
2评论
作为一名开发者,我使用很多工具。我现在还是强迫自己去学习一些新的工具,看看它们是否会提高我的开发效率。这里列出几个我觉得不错的工具。 1. JRebel 自从用了JRebel以后,我就离不开它了。不用重复的部署是多么的重要!从编码到看到效果的过程越短越好,而JRebel让它接近于0. 2. tmux 有了tmux,你可以在不同的会话中在终端分割屏幕。这样我就可以轻松的找到我需要的那个终端。
转载
2023-11-22 19:34:11
79阅读
今天发现Luminance和illuminance两个词看的我一愣一愣的,于是立即决定复习一下颜色科学中的术语。以下全文转自网络。光源发出光的量称为光通量,而在某方向上光的分布密度称为发光强度,照度为光落在物体表面的密度,而我们所见的并非照度,而是该物体所反射的亮度。光度计量中以坎德拉为SI基本单位,而流明、勒克斯等均为导出单位。这些照明常用术语的定义如下:光通量 (Luminous flux,Φ
目录 1.简介2.定义3.示例示例1示例24.应用1.记忆(缓存)函数示例1示例22.设置表的默认值1.简介1)lua的GC默认是自动回收的,当一个对象的引用计数为0时,它就会被GC所回收。2)lua中的表默认是强引用的,当你把某个对象放入表中时,就是生成一个对它的强引用(对象的引用计数+1),在对象的引用计数没有为0之前不会被GC回收;3)如果把一个表声明为弱引用,则当把某
转载
2024-09-24 06:41:47
44阅读
Preface 当LUA脚本调用我们注册的C函数时,我们需要逐个地从LUA栈里取出调用参数,当函数返回时,又需要一个一个地往LUA 栈压入返回值,并且我们注册的函数只能是int()(lua_State*)类型。这很不方便,对于上层程序员来说更不方便。 因此我们要做的是,实现一个绑定器,可以把任意prototype的函数绑
转载
2024-08-24 09:22:08
65阅读
web工程师都希望自己做的web应用能被越来越多的人使用,如果我们所做的web应用随着用户的增多而宕机了,那么越来越多的人就会变得越来越少了,为了让我们的web应用能有更多人使用,我们就得提升web应用服务端的并发能力。那么我们如何做到这点了,根据现有的并发技术我们会有如下选择: 第一个做法:为每个客户端发送给服务端的请求都开启一个线程,等请求处理完毕后该线程就被销毁掉,这种
转载
2024-05-07 11:45:57
42阅读
目录一、含义二、传统I/O三、零拷贝技术3.1 Sendfile技术3.2 splice技术 3.3 mmap技术3.4 Direct I/O技术四、总结一、概述 其他虚拟网络技术相关请查看: 虚拟网络技术资料汇总零拷贝(Zero-Copy)技术是一个思想,是一种 I/O 操作优化技术,可以快速高效地将数据在文件系统移动和网络接口之间传输数据,而不需要将其从内核空间复
# 如何优化mysql使用order by后效率变低的问题
## 介绍
在使用MySQL时,我们经常会使用order by语句对查询结果进行排序。但是当数据量大的时候,使用order by语句可能会导致查询效率变低。本文将教会你如何优化这个问题。
## 流程图
```mermaid
flowchart TD
A[开始] --> B[编写正确的SQL语句]
B --> C[添加合
原创
2024-03-10 04:26:26
305阅读
1、Redis事务的定义 redis事务就是一个命令执行的队列,将一系列预定义命令包装成一个整体(一个队列)。当执行时,一次性按照添加顺序依次执行,中间不会被打断或者干扰2、事务的基本操作开启事务multi作用 作设定事务的开启位置,此指令执行后,后续的所有指令均加入到事务中取消事务discard作用 终止当前事务的定义,发生在multi之后,exec之前执行事务exec作用 设定事务的结束位置,
转载
2024-10-14 06:39:47
2阅读
提高代码效率,在于点滴
原创
2022-07-21 09:12:20
226阅读
点赞
1评论
# 提高Java代码运行效率
## 一、流程图:
```mermaid
flowchart TD
A(开始)
B(分析代码)
C(优化代码)
D(测试效果)
E(结束)
A --> B
B --> C
C --> D
D --> E
```
## 二、整个过程分为以下四个步骤:
| 步骤 | 操作 |
| -
原创
2024-07-04 03:23:31
27阅读
# 如何提高Java代码效率
在编写Java代码时,我们经常会遇到需要提高代码效率的情况,这不仅可以提升程序的性能,还可以减少资源消耗。下面将介绍一些提高Java代码效率的方法,并附上代码示例和相关图示。
## 1. 使用合适的数据结构
在Java中,选择合适的数据结构可以显著提高代码效率。例如,当需要频繁进行查找操作时,可以选择使用HashMap而不是ArrayList。
```java
原创
2024-05-08 06:49:32
16阅读
用 Lua 的协程 coroutine 控制 Codea 屏幕刷新速度概述在 Codea 中, 函数 draw() 缺省每秒执行 60 次, 我们希望能修改一下它的刷新速度, 于是想到了 Lua 的一个特性:协程 coroutine, 希望试着用它来控制程序执行的节奏, 不过目前对于协程还不太了解, 那就一边看教程, 一边试验好了.Codea 运行机制我们知道, Codea 的运行机制是这样的
转载
2024-06-18 18:14:53
51阅读
Lua学习笔记四通过上一节的知识,我们学会了如何利用表来作为参数,这样我们能实现的功能更多了。但是有一点是没有涉及到的,那就是返回值,而返回值的讨论不能不提userdata类型。本节的目的:讨论如何处理Lua返回值和Userdata类型的应用。 现在我可以在脚本中写下“CreateWindow{x=0,y=0,w=1024,h=768} ”这样的语句来控制程序在内
文章目录Lua预编译资源使用 Lualuajit其他语言关于JITIOS 和 JITIOS 和 jit 的后话 LuaLua是一门轻量级的脚本语言,使用C语言编写,编译器和解释器也是C语言编写。下载资源:源码 http://www.lua.org/ftp/预编译好的Lua库和编译器 http://luabinaries.sourceforge.net/预编译资源下载第二个预编译好的lua资源(w
转载
2024-03-21 20:24:26
33阅读
LuaJIT的功能 Linker 翻译此文只为了提供更多信息. LuaJIT试图保留Lua的精髓--轻量级,高效和可扩展. 功能 所有的函数缺省会被JIT(即时编译器)编译到本地机器码: * 没有被使用的函数不会被编译. * 可以选择性打开和关闭即时编译函数,子函数甚至整个模块. * 需要解析的函数(译注:即没有被编译的函数)和编译过的函数可以自由的混合使用. 预编译(Ahead
前言对于Lua的基础总结总算告一段落了,从这篇博文开始,我们才真正的进入Lua的世界,一个无聊而又有趣的世界。来吧。 Lua语言是一种嵌入式语言,它本身的威力有限;当Lua遇见了C,那它就展示了它的强大威力。C和Lua是可以相互调用的。第一种情况是,C语言拥有控制权,Lua是一个库,这种形式中的C代码称为“应用程序代码”;第二种情况是,Lua拥有控制权,C语言是一个库,这个时候C代码就是