【问题标题】:Negative implications of network trips?网络旅行的负面影响?
【发布时间】:2021-04-05 21:57:42
【问题描述】:

我有一个大的 (~ 150 MB) CSV 输出文件,我需要根据需要通过 API(例如 Microsoft、Amazon 等)将其从西班牙语翻译成英语。

有 25 列,许多 100k 行。

在这 25 列中,只有大约一半需要翻译,因为另一半是数字数据。

Microsoft 和 Amazon 对每个字符的翻译收费,因此我没有翻译整个文件,而是考虑只选择实际需要翻译的 12 列,并逐个元素地翻译它们

问题在于,这会导致对 Microsoft 的翻译 API 进行数十万次网络 API 调用——每列的每个元素调用一次。虽然本质上没有什么“错误”,但我不禁觉得它效率低下。

执行数十万次网络访问以调用 API 的脚本有哪些负面影响?

谢谢

【问题讨论】:

    标签: python pandas dataframe networking network-programming


    【解决方案1】:

    执行多个操作的脚本的负面影响是什么 调用一个 API 需要十万次网络访问?

    除了可能的定价影响之外,最直接的影响是延迟增加。通过网络调用是程序可以做的最慢的事情之一。

    虽然执行 cpu 指令的时间可以以纳秒为单位来衡量,但网络调用通常以数十或数百毫秒为单位。那是 x100,000,000 的差异。

    【讨论】:

    • 感谢您的见解。你觉得混合方法值得考虑吗?当拼接成自己的 CSV 时,一整列可能是 10 MB。我可以那样做,但我觉得这会打开一个新的蠕虫罐头,并讨论发送大文件的影响。想法?
    • 当然,在单独发送价值和一次性发送所有内容之间选择一个中间立场是有意义的。但是,还需要考虑代码复杂性。我的建议是不要忘记手头的问题。如果将每个值单独发送到 API 对您的用例来说足够快并且更易于编写(更重要的是更易于阅读和理解),请从这里开始。
    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 2020-07-16
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-16
    • 1970-01-01
    相关资源
    最近更新 更多