gpt4 book ai didi

memory-management - 为什么在 Web 应用程序中进行垃圾收集?

转载 作者:IT王子 更新时间:2023-10-29 01:36:44 27 4
gpt4 key购买 nike

考虑在每个请求都由用户级线程 (ULT)(绿色线程/erlang 进程/goroutine/...任何轻量级线程)处理的平台上构建 Web 应用程序。假设每个请求都是无状态的,并且在应用程序启动时获取数据库连接等资源并在这些线程之间共享。这些线程中的垃圾收集需要什么?

通常这样的线程运行时间很短(几毫秒),如果设计得当,不会使用超过几(KB 或 MB)的内存。如果线程中分配的资源的垃圾收集是在线程退出时完成的并且独立于其他线程,那么即使是请求的第 98 个或第 99 个百分位数也不会出现 GC 暂停。所有请求都将在可预测的时间内得到答复。

这样的模型有什么问题,为什么没有被广泛使用?

最佳答案

您的假设可能不正确。

if well designed doesn't use more than a few (KB or MB) of memory

想象一下用于计算网络应用程序中使用的文本文件中的单词的函数。一些天真的实现可能是,

def count_words(text):
words = text.split()
count = {}
for w in words:
if w in count:
count[w] += 1
else:
count[w] = 1
return count

它分配比文本更大的内存。

关于memory-management - 为什么在 Web 应用程序中进行垃圾收集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27959094/

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