我的Android应用程序通过使用在用户PC上生成并传输到设备的SQLite数据库来工作.这一切都有效,但我没有预料到拥有大量数据的用户数量.在这些情况下,UI在等待获取数据时非常缓慢.
我已经尝试了一些技巧,我"确定"会加快速度,但似乎没有任何明显的效果.我的查询几乎都非常简单,通常是WHERE子句的单个"col = val"和列中的INTEGER数据.所以我对查询做不了多少.
最新的,我不是SQL专家,无论如何都是在PC上使用"CREATE INDEX"命令,认为这些索引用于加速数据库搜索.索引显着增加了数据库文件的大小,所以我很惊讶它似乎对我的应用程序的速度没有任何影响!在没有索引的情况下花费8秒钟填充的屏幕仍然需要大约8秒钟.我希望能把事情减少至少一半.
我现在想知道的是,如果Android上的SQLite实现完全使用数据库索引,或者我只是通过生成它们来浪费空间.谁能回答这个问题?
还有什么其他的东西可以尝试加快访问速度?
(对于它的价值,在绝对的基础上,用户没有什么可抱怨的.到目前为止,我的最坏情况用户的数据产生了630,000条记录(15个表),所以只有这么多可能!)
Doug Gordon GHCS Systems
我无法在Lua中编写一个可以加载多个CPU的程序.由于Lua 通过协同程序支持这个概念,我相信它是可以实现的.
我失败的原因可能是:
更有经验的人(我两周前发现Lua)可以指出我正确的方向吗?
The point is to write a number-crunching script that does hi-load on ALL cores...
为了Lua的权力的示范目的.
谢谢...
基于嵌入式Linux的设备通常需要一种机制来更新应用程序和系统文件.例如,带有USB端口的(非联网)实验室仪器可以从USB记忆棒获得软件更新.
运行脚本将文件复制到设备内部闪存上的位置是一件简单的事情.但是,存在设备在更新过程中断电并最终失效的危险.
应用程序文件的情况稍微容易一些,因为有空间复制应用程序目录,更新一个副本,并快速交换新旧目录,最大限度地减少故障窗口.
对于内核和系统文件来说,事情更为复杂,因为它们遍布整个文件系统.
我们在文件系统中使用了硬链接和软链接来识别关键文件.我们在文件和存档上使用哈希来验证文件完整性.我们已经考虑在内核中使用紧急ramfs,以便在从更新的文件系统启动失败时提供回退.
你对这个要求有什么方法?
我的嵌入式项目有一个后处理步骤,用闪存的某些部分的CRC替换可执行文件中的值.此步骤只能在链接后完成,因为这是CRC图像的第一次机会.在过去,文件格式是COFF,我已经创建了一个自定义工具来进行修补.
开发工具已切换到ELF,因此我需要重新实现CRC修补程序.在我做之前,我以为我会寻找一个现有的工具来做到这一点.编译器基于GCC,但我看不到任何的组合ld和nm和readelf可以做的工作.Google的搜索效果不佳.
我现在的工具用于nm查找要修补的地址,并使用地址,期望值(以防止覆盖错误的数据)和新的CRC值调用修补程序.CRC是以可执行文件的"十六进制"格式计算的(我也补丁),所以幸运的是我没有重做那部分.
我可以libelf再次使用和自定义代码实现此功能,但在此之前,它是否已经存在?
有没有更好的方法来实现我的目标,即将可执行文件的CRC放入可执行文件中,以便应用程序可以使用它?
我正在尝试在lua中为返回的值添加一个字符串:
local function func(str)
return (str+"_something")
end
print(func("ABC"))
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
"尝试对本地'str'执行算术运算(字符串值)"
或此错误(在我的原始程序中):
@user_script:1:user_script:1:尝试对字符串值执行算术运算
我尝试使用tosring(str)+"_ something"但没有帮助...
那么如何在Lua中连接一个字符串?
我有两个应用程序(在Windows上都是纯Lua),它们应该能够相互通信.我成功使用了luasocket TCP/IP模块; 但我想知道我可以使用其他方法来实现这一目标吗?
我需要通过Lua脚本重启系统.我需要在Reboot发生之前编写一些字符串,并且需要在Reboot完成后在Lua脚本中编写一个字符串.
示例:
print("Before Reboot System")
Reboot the System through Lua script
print("After Reboot System")
Run Code Online (Sandbox Code Playgroud)
我怎么做到这一点?
我正在为我的Lua IDE开发代码完成控件
https://github.com/AndersMalmgren/FreePIE
我正在使用反射来获取可从脚本访问的C#对象信息,但我也想在列表中使用Lua特定的东西,比如数学库等.
有没有办法得到这些?还希望获得所有关键字,如if,then,end等
如何将两个数组融合为一个,如下所示:
local array1 = {2272, 2271, 2270, 2269}
local array2 = {2267, 2266, 2268, 2265, 2264, 2263, 2262, 2261}
local fusedArray = {2272, 2271, 2270, 2269, 2267, 2266, 2268, 2265, 2264, 2263, 2262, 2261}
Run Code Online (Sandbox Code Playgroud)
或者
local array1 = {2292, 2291, 2290, 2289}
local array2 = {2267, 2266, 2268, 2265, 2264, 2263, 2262, 2261}
local fusedArray = {2292, 2291, 2290, 2289, 2267, 2266, 2268, 2265, 2264, 2263, 2262, 2261}
Run Code Online (Sandbox Code Playgroud) 我正在为Lua编写C函数.我有很多电话,如lua_gettable,lua_touserdata等
我的C函数可能会接收复杂的结构,例如表格作为字段.
我很难对堆叠机器进行编程.
有没有办法编写将转换为C代码的Lua脚本.
或者其他一些工具可以帮助我为lua脚本编写这样的C函数.
谢谢.
PS
这是一个例子: -
local data = {}
data.x = {}
data.x.y = 1
myCfunc(data)
Run Code Online (Sandbox Code Playgroud)
int myCfunc(lua_State * L){
lua_pushstring(L, "x");
lua_gettable(L, 2);
lua_pushstring(L, "y");
lua_gettable(L, -2);
double y = lua_tonumber(L, -1);
lua_pop(L, 2);
}
Run Code Online (Sandbox Code Playgroud)
代替
function myCfunc(data)
y = data.x.y
end
Run Code Online (Sandbox Code Playgroud)
我真正的代码要复杂得多,我正在寻找一些可以帮助我的自动代码生成.