我是 Flex 开发新手,在创建新的移动项目时,它询问我是否要将其连接到某些服务器,并给了我四个选项“ColdFusion、PHP、Java 和 blazeDS”。
我一直在 java 工作,而不是 PHP 人员,我会简单地选择Java
并忽略了所有其他。但由于效率是我当前项目中的一个重要问题,我不想冒险。
照你说的考虑到大多数时候我会在数据库中存储大量二进制数据(即音频/视频文件等),哪一个是最佳选择,即 ColdFusion、BlazeDS 或 Java?
由于您是 Java 人员,因此您可以立即放弃 PHP 选项:它的 AMF 远程处理选项比其他 3 个选项慢,而且您不想学习新语言。
这就只剩下 Java、CF 和 BlazeDS,它们基本上都是 Java 的风格,并且在性能方面它们非常相似(如果使用正确:请参阅进一步内容):
- Java:最基本的选项;我认为这是 AMF 远程处理最快的选择;另外你懂这种语言
- BlazeDS:这实际上是一个Java服务器应用程序,允许您将消息推送到客户端;所以你也可以用Java编写;但如果您不需要添加的功能,请不要打扰
- ColdFusion:Java 之上的“生产力层”:您是否喜欢该语言由您决定(我个人不是一个忠实粉丝)。您必须设置 ColdFusion 服务器。虽然CF服务器的开发者版本是免费的,但商业版本非常昂贵(除非您使用Raelo或BlueDragon)。
但有一件事你需要知道。 CF 中的实例化非常昂贵 - 我的意思是比 Java 慢 500 倍 - 因此,如果您有很大的列表,那绝对是一个禁忌。除非你使用我几个月前遇到的技巧:你必须创建一个“结构”并给它一个“__type__”属性,而不是实例化一个对象。
例如,而不是:
var instance = new path.to.MyClass();
//or
var instance = createObject("component", "path.to.MyClass");
像这样做:
var instance = structNew();
instance["__type__"] = "path.to.MyClass";
ColdFusion 的速度将与 Java 一样快,甚至可能稍快一些。
我有一些基准来支持这一点。该图是用某些语言创建 50000 个实例所需时间的比较。 (我实际上是想告诉我的老板 CF 到底有多糟糕。)而 CF8(不在图表中)甚至慢了 100 倍。
然后我将 AMF 序列化和“类型化结构”(如前所述)添加到列表中,结果如下:
图形中丢失了一些列名称,但左侧第二列是纯 Java 选项。因此,通过这种方法,CF9 似乎实际上比 Java 更快。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)