2016-09-07 2 views
1

Я пытаюсь понять значение CompactBuffer. Это то же самое, что итератор?Scala: что такое CompactBuffer?

Пожалуйста, объясните различия.

+3

Пожалуйста, прочитайте JavaDoc комментарий для класса. https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/util/collection/CompactBuffer.scala –

ответ

3

Согласно документации Spark, это альтернатива ArrayBuffer, которая обеспечивает лучшую производительность, поскольку она выделяет меньше памяти.

Вот выдержка из документации класса CompactBuffer:

/** 
* An append-only buffer similar to ArrayBuffer, but more memory-efficient for small buffers. 
* ArrayBuffer always allocates an Object array to store the data, with 16 entries by default, 
* so it has about 80-100 bytes of overhead. In contrast, CompactBuffer can keep up to two 
* elements in fields of the main object, and only allocates an Array[AnyRef] if there are more 
* entries than that. This makes it more efficient for operations like groupBy where we expect 
* some keys to have very few elements. 
*/ 
Смежные вопросы