相关疑难解决方法(0)

优化嵌入式Python解释器的大小

我花了最后3个小时试图找出是否可以在没有交互模式的情况下禁用或构建Python,或者我如何才能获得更小的python可执行文件的大小.

正如你可以猜到的那样是嵌入式设备,在交叉编译之后,Python的大小约为1MB,这对我来说太过分了.

现在的问题是:

是否有可能缩小Python可执行文件?也许要禁用交互模式(在命令行上启动Python程序).

我查找了配置选项并尝试了其中一些,但它不会对我的可执行文件产生任何更改.

我用gcc的优化选项编译它,它已经被剥离了.

python embedded

17
推荐指数
2
解决办法
6415
查看次数

有人使用Scheme/LISP进行嵌入式项目吗?

这个问题可能在某种程度上受到了使用Python进行嵌入式项目的人的启发 ; 所以任何人使用一些Scheme版本或Common Lisp(如ECL)进行免费/ oss /商业项目?

就个人而言,我使用(并且仍在使用)TinyScheme用于需要某些嵌入式语言的个人项目,主要是因为非常容易嵌入(对不起Python爱好者,在那里,这非常痛苦,特别是在我从TinyScheme学到事情可以简单之后) .

lisp embedded scheme

10
推荐指数
1
解决办法
1095
查看次数

高效的字符串到十六进制功能

我在嵌入式平台上使用旧版本的python(在Telit平台上使用Python 1.5.2+).我遇到的问题是我将字符串转换为十六进制的函数.这很慢.这是功能:

def StringToHexString(s):
    strHex=''

    for c in s:
        strHex = strHex + hexLoookup[ord(c)]

    return strHex
Run Code Online (Sandbox Code Playgroud)

hexLookup是一个查找表(python列表),包含每个字符的所有十六进制表示.

我愿意尝试一切(一个更紧凑的功能,一些我不知道的语言技巧).更清楚的是基准测试(该平台的分辨率为1秒):

N是要转换为十六进制的输入字符数,时间以秒为单位.

  • N | 时间(秒)
  • 50 | 1
  • 150 | 3
  • 300 | 4
  • 500 | 8
  • 1000 | 15
  • 1500 | 23
  • 2000年| 31

是的,我知道,这很慢......但如果我能获得1秒或2秒的时间,这将是一个进步.

所以任何解决方案都受到欢迎,尤其是那些了解python性能的人.

谢谢,

尤利安

PS1 :(在测试提供的建议后 - 保持ord通话):

def StringToHexString(s):
    hexList=[]
    hexListAppend=hexList.append

    for c in s:
        hexListAppend(hexLoookup[ord(c)])

    return ''.join(hexList)
Run Code Online (Sandbox Code Playgroud)

通过此功能,我获得了以下时间:1/2/3/5/12/19/27(显然更好)

PS2(无法解释,但速度非常快)非常感谢Sven Marnach的想法!!!:

def StringToHexString(s):
    return ''.join( map(lambda param:hexLoookup[param], map(ord,s) ) ) …
Run Code Online (Sandbox Code Playgroud)

python hex

3
推荐指数
1
解决办法
1274
查看次数

标签 统计

embedded ×2

python ×2

hex ×1

lisp ×1

scheme ×1