【问题标题】:What's a low overhead language for linux with MySQL support?支持 MySQL 的低开销语言是什么?
【发布时间】:2016-10-03 03:34:04
【问题描述】:

Asterisk 服务器需要运行一个查询 MySQL 数据库的外部脚本(如果你必须知道的话,一个“AGI”)。这个脚本会经常运行,大概每分钟 50-100 次,而且它做的不多(大约 10-15 次 SELECTS,对结果进行一些计算并将结果回显给 Asterisk)。

如果脚本是 PHP shell 脚本,在负载测试期间它会占用大量 CPU(大概是因为它每次运行时都会加载和加载整个 php 库)。

另一方面,如果脚本是 bash shell 脚本,则需要很长时间才能运行,因为 bash 无法(轻松)维护单个 MySQL 连接并使用 SSL 与远程服务器进行 10-15 次连接/断开连接每次协商需要十分之几秒,因此整个脚本可能需要 3-4 秒。

对于这项任务,有哪些更好的语言选择?开销低但易于 MySQL 支持的东西,最好是解释而不是编译。

【问题讨论】:

  • 每分钟 60 到 100 个同步吗?
  • 有时脚本的一个实例仍将运行,而脚本的第二个实例必须启动,如果这是您所要求的。
  • 我的意思是它会阻塞。最后,尝试与社区分享你的想法和分析

标签: mysql linux shell


【解决方案1】:

每分钟启动 50-100 次新进程的任何语言都有一些开销。无论程序是用什么语言编写的,只要启动一个进程就有开销。

理想情况下,您应该通过向服务发出请求来避免流程的开销。但是听起来你需要使用 AGI 接口,所以你无法真正摆脱这种开销。

所有脚本语言(PHP/Ruby/Python/Perl)都有需要启动的解释器。

即使是 Java 也有需要在每个进程中启动的运行时 JVM,因此这是一个仍然有开销的编译语言示例。

像 C、C++ 或 Go 这样的编译语言可能是最小化语言运行时开销的好选择。所有这些都有 MySQL 的编程接口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    • 2010-09-12
    • 1970-01-01
    • 2020-11-22
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多