LINUX.ORG.RU

Веревки для Кофе

 , , ropes,


0

0

Именно так. Вышла новая версия 1.2.0 библиотеки "веревок", или Ropes for Java. "Веревки" — это структура данных, позволяющая асимптотически, на порядки, увеличить скорость обработки строк большой длины по сравнению с традиционными классами Java, такими как String и StringBuilder, удобными в использовании, но при этом не очень быстрыми в работе. http://www.ibm.com/developerworks/jav...

Ждем реализацию NRopes for C#, RRopes for Ruby, PRopes for PHP & Python :)

>>> Подробности

anonymous

Проверено: anonymous_incognito ()

Мыло в комплекте идет?

anonymous
()

Эмм, если работает быстро значит жрет память?

wfrr ★★☆
()
Ответ на: комментарий от AntiWindows

При томже при чем и веревки, так что все сочетается.

wfrr ★★☆
()

Это аналог std::deque<char/wchar_t> ? :)

JackYF ★★★★
()

запарили новости про жабу

anonymous
()

Ждем реализации мыла.

anonymous
()

> Ждем реализацию NRopes for C#, RRopes for Ruby, PRopes for PHP & Python :)

т.е. в этих языках работа со строками тоже тормозная?

vadiml ★★★★★
()
Ответ на: комментарий от vadiml

Она практически во всех языках тормозная. Правда я слышал, что в каком то STL-е std::string через ропы сделан.

И, да, оно память кушает больше чем обычный вектор и операция индексации вроде логарифм.

Legioner ★★★★★
()

> Ждем реализацию

maybe жду?

brrr
()

> Ждем реализацию NRopes for C#, RRopes for Ruby, PRopes for PHP & Python :)

Ага, а версию для Java переименовать в Jopes.

gaa ★★
()

Интересно, а почему вся энтерпрайз-фагготерия для Java так забавно называется? Сразу вспоминаю смищной ролик про Hibernate в виде плюшевого мишки.

Sphinx ★★☆☆
()
Ответ на: комментарий от Sphinx

Эт к недавнему флейму о сложении строк?

anonymous
()

Тот случай когда PERL рулит.

anonymous
()
Ответ на: комментарий от Sphinx

>Интересно, а почему вся энтерпрайз-фагготерия для Java так забавно называется? Сразу вспоминаю смищной ролик про Hibernate в виде плюшевого мишки.

Вообще-то, ropes - это достаточно известная структура данных, которая лет на 20 старше Java.

anonymous
()
Ответ на: комментарий от Legioner

>оно память кушает больше чем обычный вектор

Это не верно. rope умеет совмещать повторяющиеся кусочки.

crope r(1000000, 'x'); // crope is rope<char>. wrope is rope<wchar_t>

// Builds a rope containing a million 'x's.

// Takes much less than a MB, since the

// different pieces are shared.

anonymous
()

Фигня какая-то.

В Java substring() не выделяет нового массива char'ов. А конкатенация - приведите пример задачи, когда производительности стандартного подхода со StringBuilder недостаточно?

guitarist ★★
()

ahmadsoft.org намекает

anonymous
()

Исправьте заголовок!

> Веревки для Кофе

Исправьте заголовок! надо не "Веревки для Кофе" а "Костыли для Кофе".

Rodegast ★★★★★
()

Java, java... У автора и с русским-то синтаксисом патология!

anonymous
()
Ответ на: комментарий от guitarist

> В Java substring() не выделяет нового массива char'ов. А конкатенация - приведите пример задачи, когда производительности стандартного подхода со StringBuilder недостаточно?

Не знаю, как с Jopes, но в мане для std::rope указан текстовый редактор как одно из применений rope.

gaa ★★
()

Ура! Java стала еще быстрее!

anonymous
()
Ответ на: комментарий от guitarist

> А конкатенация - приведите пример задачи, когда производительности стандартного подхода со StringBuilder недостаточно?

В 2007 году на ICFPC была интересная задача. Реализация на хаскеле с ропами работала на несколько порядков быстрее, чем заоптимизированная вусмерть реализация на сях.

Legioner ★★★★★
()
Ответ на: комментарий от guitarist

Кстати в ропе быстрее удаление/вставка подстроки. В StringBuilder-е удаление из строки длиной в миллион символов одного символа выльется в копирование пары мегабайтов.

Legioner ★★★★★
()
Ответ на: комментарий от anonymous

Кстати о названии: string -- это тоже верёвка между прочем.

anonymous
()

>на порядки, увеличить скорость обработки строк большой длинны по сравнению с традиционными классами

И всеравно Жаба будет тормозить, она не может не тормозить!

anonymous
()

На сайте SGI написано: Almost, but not quite, a model of Front Insertion Sequence and Back Insertion Sequence. Бедный Степанов со своей математизацией программирования...

Ulysses
()

А когда будут верёвки для жабакодеров? :)

anonymous
()
Ответ на: комментарий от Karapuz

public String substring(int beginIndex, int endIndex) {
  if (beginIndex < 0) {
    throw new StringIndexOutOfBoundsException(beginIndex);
  }
  if (endIndex > count) {
    throw new StringIndexOutOfBoundsException(endIndex);
  }
  if (beginIndex > endIndex) {
    throw new StringIndexOutOfBoundsException(endIndex - beginIndex);
  }
  return ((beginIndex == 0) && (endIndex == count)) ? this :
    new String(offset + beginIndex, endIndex - beginIndex, value);
}

HappyCoder
()
Ответ на: комментарий от jerry

> А что означает "асимптотически увеличить"?

Увеличить для большинства случаев. Иногда оптимизация может и не сработать. Например, quicksort асимптотически работает за время порядка O(n log n), а в худшем случае за O(n^2).

Матчасть рулит.

anonymous
()
Ответ на: комментарий от anonymous

>И всеравно Жаба будет тормозить, она не может не тормозить!

Java не тормозит и томми это доказал

nnm
()

>Ждем реализацию NRopes for C#, RoRes for Ruby, PoPes for PHP & Python

исправьте =D

rebarned
()
Ответ на: комментарий от AndreyKl

>это только потому что ты её не запускал.

Запустил:

% java -version
java version "1.6.0_03-p4"
Java(TM) SE Runtime Environment (build 1.6.0_03-p4-root_07_jun_2008_12_33-b00)
Java HotSpot(TM) Server VM (build 1.6.0_03-p4-root_07_jun_2008_12_33-b00, mixed mode)

iZEN ★★★★★
()
Ответ на: комментарий от anonymous

>непрально. надо time java -version

Бугагагашечки! Линукс в таком случае ЧУДОВИЩНО тормозит. Его запуск занимает не меньше полминуты, померяй. И кто только додумался linux на C написать!

anonymous
()
Ответ на: комментарий от Legioner

> Кстати в ропе быстрее удаление/вставка подстроки. В StringBuilder-е удаление из строки длиной в миллион символов одного символа выльется в копирование пары мегабайтов.

Это да. Текстовые редакторы действительно никто вменяемый не станет писать на StringBuilder'е, тут и спорить нечего.

Короче, надо в любом случае всегда оценивать возможные подходы к решению с нескольких сторон, фактически это стандартная дилемма оптимизации по скорости vs поддерживаемости.

guitarist ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.