为什么云功能的性能如此低下却又如此昂贵?

时间:2019-04-17 16:36:38

标签: performance loops google-cloud-functions

我最近刚刚注册了Google Cloud免费套餐,并对Cloud Functions感兴趣,这使我无需安装OS系统或软件开发工具即可开发和运行代码。因此,我想通过在2GB和2.8Ghz CPU上运行的此功能来测试其性能达到极限

exports.helloWorld = (req, res) => {
  let message = getTheLottery();
  res.status(200).send(message);
};

function getTheLottery(){
for(var i=0,len=10000000;i<len;i++)
{
var ticket=sha256(makeid(5));
if(ticket=='7CD743877911812A45CD7974023A2D1ACA9831C82057902A2300874A951E6E17')
     return true;
    }
    return false;
}

SHA256算法来自here,而makeid来自here,用于生成随机字符串

完成任务需要40秒钟(40311毫秒),在C ++或C#上实现此代码,添加简单的并行和多线程,它可以轻松地在我的普通学校PC上使用4GB ram和i5 2.5ghz在不到7秒的时间内运行任务加上它必须在后台运行OS系统和少量软件,更不用说代码了,当Google声称它可以使代码比普通PC快75%时

我还没有尝试过Azure云功能。假设我将“功能”带入我的网站并让ppl运行1000000次,则calculator的费用为1657美元,也许有幸在一天中几乎没有任何方式运行数百次由于代码或系统受限制,并且运行时间越长,SECONDS花费的成本就越高,因此可以对其进行优化。有了这笔钱,我可以租用具有强大GPU的VM,并以最高的性能运行完全开发的渲染或蛮力软件

我是否有更好的方法来运行代码?因为这种感觉就像是带有额外步骤的在线代码编译器。它如何使无服务器计算成为“未来”?

1 个答案:

答案 0 :(得分:0)

大量计算不是Cloud Functions的用例。实际上,考虑到服务器实例只有一个CPU,没有GPU且最长执行时间为9分钟,因此有很多事情不是很好。

如果计算量很大,请考虑改用Compute Engine。如果需要,您可以编写将工作委托给Compute Engine的Cloud Function。

Cloud Functions旨在将系统的其他部分粘合在一起,而无需为其创建和管理正式的基础架构。主要好处是轻松扩展(向上和向下),仅支付使用的资源以及触发GCP项目中发生的事件的能力。