Java GAE哪一个更适合全球系统承包商?
好的,这是一个一般性的问题。。。在我的GAE应用程序中,我需要保留两种类型的静态数据,参数可能会更改,如用户名和密码(对于外部服务,而不是我的用户数据库),因此最好的方法是不要硬编码它们,并将它们保存在数据存储中,以便我可以从管理系统设置面板更改它们。然而,那些永远不会改变的东西呢,比如表单中选择器的国家列表。以下是我的选择: 备选案文1: 将它们保存在dataUitls实体下的数据存储中。然而,这将对我的数据存储报价产生影响 备选案文2: 在类中硬编码。这不会影响我的数据存储引用,并且在JSP循环中会更快,因为我不必等待数据存储事务,但是,这将极大地影响我的内存和实例。例子如下Java GAE哪一个更适合全球系统承包商?,java,google-app-engine,jpa,google-cloud-datastore,Java,Google App Engine,Jpa,Google Cloud Datastore,好的,这是一个一般性的问题。。。在我的GAE应用程序中,我需要保留两种类型的静态数据,参数可能会更改,如用户名和密码(对于外部服务,而不是我的用户数据库),因此最好的方法是不要硬编码它们,并将它们保存在数据存储中,以便我可以从管理系统设置面板更改它们。然而,那些永远不会改变的东西呢,比如表单中选择器的国家列表。以下是我的选择: 备选案文1: 将它们保存在dataUitls实体下的数据存储中。然而,这将对我的数据存储报价产生影响 备选案文2: 在类中硬编码。这不会影响我的数据存储引用,并且在JSP
package system.Tools;
import java.util.ArrayList;
import java.util.List;
public class SystemConstants
{
public static String[] tmp = {"String1","String2"};
public static List<String>Countries = get(tmp);
private static List<String> get(String[]countries)
{
List<String>result = new ArrayList<String>();
for(String tmp:countries)
{
result.add(tmp);
}
return result;
}
// getters and setters for whatever other parameters I have here
}
包系统工具;
导入java.util.ArrayList;
导入java.util.List;
公共类SystemConstants
{
公共静态字符串[]tmp={“String1”、“String2”};
公共静态列表国家=获取(tmp);
私有静态列表获取(字符串[]国家)
{
Listresult=新的ArrayList();
用于(字符串tmp:国家)
{
结果:添加(tmp);
}
返回结果;
}
//其他参数的getter和setter
}
毫无疑问,这两种方法都能奏效,但我需要一个专业的意见(最好是两种方法都试过的人)告诉我哪种方法更适合这种特殊情况
谢谢大家!!让他们来 硬编码常量比数据存储查询的处理器开销小得多,并且使用的内存也更少。数据存储访问类和对象的内存开销将超过大量硬编码常量的内存开销 在极端情况下,数据存储可能具有的唯一优势是,当您只需要大量数据的一小部分时,内存使用量会稍微减少。国家名单并没有那么极端
最佳选择将取决于您的具体情况。与其推测,不如测量和比较。硬编码常量比数据存储查询的处理器开销小得多,而且使用的内存也少。数据存储访问类和对象的内存开销将超过大量硬编码常量的内存开销 在极端情况下,数据存储可能具有的唯一优势是,当您只需要大量数据的一小部分时,内存使用量会稍微减少。国家名单并没有那么极端
最佳选择将取决于您的具体情况。与其推测,不如测量和比较。硬编码常量比数据存储查询的处理器开销小得多,而且使用的内存也少。数据存储访问类和对象的内存开销将超过大量硬编码常量的内存开销 在极端情况下,数据存储可能具有的唯一优势是,当您只需要大量数据的一小部分时,内存使用量会稍微减少。国家名单并没有那么极端
最佳选择将取决于您的具体情况。与其推测,不如测量和比较。硬编码常量比数据存储查询的处理器开销小得多,而且使用的内存也少。数据存储访问类和对象的内存开销将超过大量硬编码常量的内存开销 在极端情况下,数据存储可能具有的唯一优势是,当您只需要大量数据的一小部分时,内存使用量会稍微减少。国家名单并没有那么极端
最佳选择将取决于您的具体情况。与其猜测,不如测量和比较。这取决于您的需求。如果你相信你的数据永远不会改变,那么硬编码就没有障碍。每当您想要添加多语言支持时,由于硬编码,最终可能会有很多更改 对于一个静态变量,不要太在意memeory的用法。与程序中的其他内存使用相比,它可以忽略不计 还有第三种方法可以使用。 将这些文件写入.property文件,并将其与程序捆绑在一起。启动时,读取文件并加载值
总之,不要过多考虑记忆。如果列表在数据库中,则必须在使用前将其加载到内存中。如果可以通过GUI更改,则数据库解决方案是好的。基于属性文件的方法是高效且易于编程的 这取决于您的要求。如果你相信你的数据永远不会改变,那么硬编码就没有障碍。每当您想要添加多语言支持时,由于硬编码,最终可能会有很多更改 对于一个静态变量,不要太在意memeory的用法。与程序中的其他内存使用相比,它可以忽略不计 还有第三种方法可以使用。 将这些文件写入.property文件,并将其与程序捆绑在一起。启动时,读取文件并加载值
总之,不要过多考虑记忆。如果列表在数据库中,则必须在使用前将其加载到内存中。如果可以通过GUI更改,则数据库解决方案是好的。基于属性文件的方法是高效且易于编程的 这取决于您的要求。如果你相信你的数据永远不会改变,那么硬编码就没有障碍。每当您想要添加多语言支持时,由于硬编码,最终可能会有很多更改 对于一个静态变量,不要太在意memeory的用法。与程序中的其他内存使用相比,它可以忽略不计 还有第三种方法可以使用。 将这些文件写入.property文件,并将其与程序捆绑在一起。启动时,读取文件并加载值 总之,不要过多考虑记忆。如果您的列表在数据库中,则必须将其加载为int