gpt4 book ai didi

string - 优化 F# 字符串连接

转载 作者:行者123 更新时间:2023-12-03 16:06:07 25 4
gpt4 key购买 nike

我正在构建一个 MySql 查询,一次批量插入 4096 条记录。实际插入速度相当快,但瓶颈是生成查询。关于优化这个的任何提示?字符串生成目前比查询长大约 18 倍。

                    let builder = StringBuilder(524288)
Printf.bprintf builder
"
INSERT INTO %s
(`ID`,
`Tag`,
`Port`,
`Excess`,
`Return`,
`StartDate`,
`EndDate`
)
values "
x.evaluationstable

evaluations
|> Seq.iter(fun (e) ->
Printf.bprintf builder
" (%d, '%s', '%s', %A, %A, %A, %A), "
e.ID
e.Tag
e.Port
e.Excess
e.Return
(e.StartDate.ToString(x.datetimeformat))
(e.EndDate.ToString(x.datetimeformat))
)

最佳答案

尝试使用 StringBuilder.AppendFormat 而不是 Printf.bprintf 。当我在我的问题示例中进行此更改时,我看到了巨大的性能提升(~80 倍)。

evaluations
|> Seq.iter (fun (e) ->
builder.AppendFormat(
" ({0}, '{1}', '{2}', {3}, {4}, {5}, {6}), ",
e.ID,
e.Tag,
e.Port,
e.Excess,
e.Return,
(e.StartDate.ToString("MM/dd/yyyy")),
(e.EndDate.ToString("MM/dd/yyyy"))
) |> ignore
)

关于string - 优化 F# 字符串连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1025775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com