Emacs Elisp:符号名是否为O(1)操作wrt name长度?

Emacs Elisp:符号名是否为O(1)操作wrt name长度?,emacs,elisp,Emacs,Elisp,我不得不说很多次,所以我想知道 如果我应该做一些优化,比如一个符号和名称列表 我浏览了一下C源代码,它似乎只是一个指针操作, 但是我可能误解了,我想确定一下。符号名不复制,所以它是一个O(1)操作,是的。如果您执行(aset(symbol name'car)1?d)symbol name以字符串形式返回符号名称,则可能是问题的根源。您希望名称的长度有什么样的依赖性?除了可能的值的副本。值的副本是一个O(N)操作w.r.t.名称长度。那么,你有你的答案吗?但你不能真的依赖复制,因为它可以被省略。这

我不得不说很多次,所以我想知道 如果我应该做一些优化,比如一个符号和名称列表

我浏览了一下C源代码,它似乎只是一个指针操作,
但是我可能误解了,我想确定一下。

符号名
不复制,所以它是一个O(1)操作,是的。如果您执行
(aset(symbol name'car)1?d)

symbol name
以字符串形式返回符号名称,则可能是问题的根源。您希望名称的长度有什么样的依赖性?除了可能的值的副本。值的副本是一个O(N)操作w.r.t.名称长度。那么,你有你的答案吗?但你不能真的依赖复制,因为它可以被省略。这是我不确定的事情。是复印的,还是我只是想得到一份推荐信?啊,我明白了。字符串是一个数组。数组是引用的。检查此项的简单代码:
(setq myval“foobar”)(defun get-myval()myval)(aset(get myval)0?b)