我是Flex开发的新手,在创建一个新的Mobile项目时,它询问我是否要将它连接到某些服务器并给我四个选项`ColdFusion,PHP,Java和blazeDS。)
我一直在java工作,而不是PHP老师,我会简单地选择Java
而忽略所有其他人。但由于效率是我目前项目中的一个重要问题,我不想冒险。
根据你哪一个是最好的选择,即ColdFusion,BlazeDS或Java,考虑到大多数时候我将在数据库中存储大量二进制数据,即音频/视频文件等等。
答案 0 :(得分:7)
由于您是Java人员,您可以立即删除PHP选项:其AMF远程处理选项比其他3选项慢,并且您不想学习新语言。
这给我们留下了Java,CF和BlazeDS,它们基本上都是Java的风格,而且在性能方面它们非常相似(如果使用正确:请参见下文):
但是你需要知道一件事。 CF中的实例化是非常昂贵的 - 我的意思是比Java慢500倍 - 所以如果你有大的列表它肯定是nono。除非你使用我几个月前碰到的技巧:不是实例化一个对象,你必须创建一个'struct'并给它一个'__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序列化和'typed struct'(如前所述)添加到列表中,这就是结果:
图形中丢失了一些列名,但左边的第二列是纯Java选项。因此,使用这种方法,CF9实际上似乎比Java更快。
答案 1 :(得分:1)
我一直在做Flex - > ColdFusion好几年了,虽然我有时会对编写ColdFusion感到沮丧,但它对于处理Flex应用程序的后端非常有用。也就是说,我还使用BlazeDS与ColdFusion和Flex在几个客户端中提供(推送)消息。
最终,我认为ColdFusion(尤其是开源CFML服务器,Railo)是Flex应用程序的绝佳后端(即数据提供程序)。