我正在寻找一种algorithm来确定实时数据捕获的百分比。 例如,考虑服务器应用程序的开发。 服务器的响应时间如下所示:17 ms 33 ms 52 ms 60 ms 55 ms等 报告第90百分位响应时间,第80百分位响应时间等是有用的。 天真的algorithm是将每个响应时间插入一个列表。 当请求统计信息时,对列表进行sorting,并将值在适当的位置。 内存使用量与请求数成线性关系。 是否有一个algorithm,给出有限的内存使用“近似”百分数统计? 例如,假设我想以一种处理数百万个请求的方式来解决这个问题,但是只想使用一千字节的内存来进行百分比跟踪(丢弃对旧请求的跟踪不是一种select,因为百分点应该是适用于所有请求)。 还要求没有关于分配的先验知识。 例如,我不想提前指定任何桶的范围。