Performance 在dart中将对象用作贴图关键点是否会对性能产生显著影响?
我最近在dart中编写了一些代码,发现使用某些对象作为贴图键更简单。实际上,这段代码是在web模式下执行的(编译为javascript),但最终它也将在dart VM模式下使用 在dart中使用对象作为地图键是否会对内存/性能产生重大影响Performance 在dart中将对象用作贴图关键点是否会对性能产生显著影响?,performance,dictionary,dart,benchmarking,Performance,Dictionary,Dart,Benchmarking,我最近在dart中编写了一些代码,发现使用某些对象作为贴图键更简单。实际上,这段代码是在web模式下执行的(编译为javascript),但最终它也将在dart VM模式下使用 在dart中使用对象作为地图键是否会对内存/性能产生重大影响 我没有发现很多关于基准测试的资源(已经不存在了),所以任何方向都是受欢迎的 有一些注意事项: 记忆 由于用作键的每个对象都将由映射引用,因此除非映射本身可以被垃圾收集,或者键已从映射中移除,否则不能对每个对象进行垃圾收集。每个键的关联值也是如此 对于地图用于保
我没有发现很多关于基准测试的资源(已经不存在了),所以任何方向都是受欢迎的 有一些注意事项: 记忆 由于用作键的每个对象都将由映射引用,因此除非
映射本身可以被垃圾收集,或者键已从映射中移除,否则不能对每个对象进行垃圾收集。每个键的关联值也是如此
对于地图用于保存键和值的存储,如果使用例如String
作为键或自定义对象,则不会有任何区别,因为这两种键都将被保存为引用
演出
映射
上操作的性能很大程度上取决于=
操作符和hashCode
属性的性能,因为这两个属性都用于映射
上使用的多个操作
我可以在这里推荐阅读关于它们的内容:
结论
很多项目都使用自定义对象作为贴图的关键点,在这期间通常不会出现任何问题。事实上,使用自定义对象与使用例如String
作为键没有多大区别,因为String
也只是一个普通类,具有自己的=
运算符和hashCode
属性。有一些注意事项:
记忆
由于用作键的每个对象都将由映射引用,因此除非映射本身可以被垃圾收集,或者键已从映射中移除,否则不能对每个对象进行垃圾收集。每个键的关联值也是如此
对于地图用于保存键和值的存储,如果使用例如String
作为键或自定义对象,则不会有任何区别,因为这两种键都将被保存为引用
演出
映射
上操作的性能很大程度上取决于=
操作符和hashCode
属性的性能,因为这两个属性都用于映射
上使用的多个操作
我可以在这里推荐阅读关于它们的内容:
结论
很多项目都使用自定义对象作为贴图的关键点,在这期间通常不会出现任何问题。事实上,使用自定义对象与使用例如String
作为键没有多大区别,因为String
也只是一个普通类,具有自己的=
运算符和hashCode
属性