【发布时间】:2019-04-17 16:36:38
【问题描述】:
我最近刚刚注册了一个 Google Cloud 免费套餐,并对 Cloud Functions 产生了兴趣,它可以让我在不安装操作系统系统或软件开发工具的情况下开发和运行代码。所以我想在 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 秒 (40311ms),在 C++ 或 C# 上实现此代码添加简单的并行和多线程它可以在 4GB ram 和 i5 2.5ghz 的普通学校 PC 上在不到 7 秒的时间内轻松运行任务加上它必须在后台运行操作系统系统和少量软件,更不用说代码了,当谷歌声称它可以使代码比普通 PC 快 75% 时
我没有尝试过 Azure 云功能。假设我将“功能”带到我的网站并让 ppl 运行 1000000 次,根据calculator 的计算,这将花费 1657 美元,并且可能一整天运行几百次而几乎没有任何优化的方法是一笔财富代码或系统,因为它都是有限的,运行时间越长,它的成本就越高。有了这笔钱,我可以租用具有强大 GPU 的虚拟机并以最高性能运行完全开发的渲染或蛮力软件
我有没有更好的方法来运行代码?因为这感觉就像一个带有额外步骤的在线代码编译器。它如何让无服务器计算成为“未来”?
【问题讨论】:
-
云函数不是为并行化、计算密集型任务而设计的。
-
@SLaks 那么为什么它具有如此庞大的配置?我的意思是仅仅用它来发送和接收 HTTP 请求是一种浪费
-
我不会认为任何 Cloud Functions 配置都是“巨大的”。
-
将 Pub/Sub 与处理单个或一大块数据的云功能结合使用。让每个云函数实例做微小的计算,最后总结结果。
标签: performance loops google-cloud-functions