java - 静态数据结构

标签 java google-app-engine startup compile-time compile-time-constant

有没有办法在编译时创建Map或Set类型的数据结构?

我问这个问题的原因是因为我正在使用 App Engine,并且我有一些需要排序和搜索的数据结构,但它们是恒定的,所以我想避免创建它们的时间成本在启动时。

最佳答案

与任何类型的性能优化一样,首先要问自己的是在运行时设置这些结构所花费的时间是否真的会影响性能。你的建筑面积有多大?他们需要多长时间才能建立?如果您还没有衡量这一点,那么您就在进行过早的优化,正如我们所知,这是万恶之源。

假设您已完成此操作,那么让我们看看选项。您真正可以节省多少时间?最好的选择是使用某种形式的序列化,但你必须自己编写;即使您定义了一种文件格式来保存内容,也必须解析该文件,并且必须创建内存中的数据结构。这需要时间,而且不可能比仅仅创建 map 或集并填充它们快得多。在某些语言中,理论上您可以保存这些结构的内存位模式,但即使您可以这样做,您也会使自己容易受到编译器版本中任何微小变化的影响,并且您所犯的任何错误几乎都无法调试。/p>

简而言之,除非您确定需要这样做,否则不要这样做。即便如此,您可能也不应该这样做。您唯一应该考虑的时间是,节省的时间(可能非常小)绝对意味着项目的成功与失败。

关于java - 静态数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4079211/

相关文章:

Java 流 - 标准差

java - switch 语句的奇怪语义

java - 使用简单的Java代码(将ArrayList实现为堆栈)在运行时会出现错误

java - mac上运行java的问题

Android 线程和 ArrayAdapter

google-app-engine - App Engine 搜索中的 "Per-document consistent"

Java 将应用程序 move 到启动文件夹

android - 启动没有 Activity 的android应用程序

python - 对 GAE 中根实体的强一致性查询?

ios - 如何以编程方式设置 UISlider 初始值,或者,iOS 程序如何启动?