performance - 在 seq 和向量之间转换的性能成本是多少?
问题描述
许多核心 Clojure 函数返回惰性序列,即使将向量传递给它们。例如,如果我有一个数字向量,并且想根据某个谓词过滤它们但又得到另一个向量 back,我必须做这样的事情:
(into [] (filter my-pred my-vec))
或者:
(vec (filter my-pred my-vec))
虽然我不确定两者之间是否有任何有意义的区别。
此操作是否昂贵,或者您是否像在转换到/从瞬态时那样免费有效地获得它?
我知道 seq 是惰性的,因此在将其放入输出向量之前实际上不会计算任何内容,但是从 seq 和具体集合转换是否有开销?它可以用大O来表征,还是大O在这里没有意义?从向量转换为序列时,另一种方式呢?
解决方案
推荐阅读
- apache-spark - When is it safe to delete files when using file-based streaming?
- c# - Why Listbox SelectedItem return null value?
- sql-server-2008 - Linq , SQLServer - performance
- python - 禁用按键 2 秒 Pygame
- swift - 在 Swift 中从按钮标题中转换为双精度
- c# - C# 中的多个条件和 MySQLConnections 问题
- angular5 - ng-packagr 和共享模块
- php - 我想显示匹配单词的列表,但只有 1 个结果
- javascript - 如何在html中水平显示div?
- ruby-on-rails - “sarlLegalStatuses”不是受支持的控制器名称