Мерзавец или Подрывная деятельность для двоичных файлов

Амортизируемое время объяснено простыми словами:

, Если Вы, операция говорит миллион раз, Вы действительно не заботитесь о худшем случае или лучшем случае той операции - о чем Вы заботитесь, то, сколько времени потрачено всего при повторении операции миллион раз.

, Таким образом, не имеет значения, если операция является очень медленной время от времени, пока "время от времени", достаточно редко для замедления быть растворенным далеко. По существу амортизируемое время означает "среднее время, потраченное на операцию, если Вы делаете много операций". Амортизируемое время не должно быть постоянным; у Вас может быть линейное и логарифмическое амортизируемое время или безотносительно.

Позволяют нам взять пример циновок динамического массива, к которому Вы неоднократно добавляете новые объекты. Обычно добавление объекта занимает время (то есть, O(1)). Но каждый раз, когда массив полон, Вы выделяете вдвое больше места, копируете Ваши данные в новый регион и освобождаете старое пространство. Принятие выделяет и освобождает выполненный в постоянное время, этот процесс расширения берет O(n) время, где n является текущим размером массива.

Так каждый раз, когда Вы увеличиваетесь, Вы берете во вдвое большее количество времени, когда последние увеличиваются. Но Вы также ожидали дважды как прежде, чем сделать его! Стоимость каждого расширения может таким образом быть "распространена" среди вставок. Это означает, что в долгосрочной перспективе, общее время, потраченное для добавления м , объекты к массиву O(m), и таким образом, амортизируемое время (т.е. время на вставку) O(1).

25
задан Peter Recore 15 July 2009 в 20:18
поделиться

3 ответа

Разумеется, Subversion. Сегодня (2009 г.) TortoiseSVN обеспечивает навигацию по репозиториям Subversion, интегрированную в Explorer, и, в частности, поддерживает различие произвольных документов Word (оно переносит различие на сам Word, но эта функция работает очень хорошо)

. ] Нет причин, по которым TortoiseGit не может иметь такую ​​же функцию, но на сегодняшний день такая вещь не существует в стабильной форме. К счастью, в будущем легко перенести репозиторий Subversion на Git.

Обновление : По состоянию на 2011 год TortoiseGit, очевидно, имеет те же функции управления документами, что и TortoiseSVN. Однако Subversion поддерживает рекомендательные блокировки документов, чтобы другие пользователи получали уведомление, если они попытаются редактировать документ одновременно с кем-то другим. Насколько мне известно,

13
ответ дан 28 November 2019 в 18:12
поделиться
  • Subversion пытается автоматически обнаруживать двоичные файлы (см. SVN FAQ ). Если это не удается, вы должны назначить их самостоятельно (вы также не можете изменить метод обнаружения SVN).

  • Git делает то же самое, и вы можете указать, какие файлы автоматически обрабатывать как двоичные файлы, включив .gitattributes в исходном репозитории.

  • Здесь - сравнение обработки двоичных файлов Git и SVN.

  • Здесь показано, что некоторые другие участники Stack Overflow делали с Git и двоичными файлами.

Надеюсь, это поможет!

37
ответ дан 28 November 2019 в 18:12
поделиться

Мы используем git для всего. Буквально. Даже весь общий файловый ресурс нашего административного офиса хранится в git (системный администратор фиксирует его каждый день).

Этот общий ресурс почти полностью состоит из двоичных файлов - текстовых документов, кратких книг и т. Д.

У нас есть 100% точность история всего. А с помощью случайного git gc он сохраняет управляемый размер репо.

Также: git действительно быстрый. Когда мы перешли с SVN, git был примерно в 10 раз быстрее, чем subversion в наших шаблонах использования (большие проекты с 20 000+ файлами).

15
ответ дан 28 November 2019 в 18:12
поделиться