Строки.NET по сравнению с потоками - профиль памяти и характеристики

Я не думаю, что есть способ сделать это. Но если вы используете scalatest для запуска своих тестов вместо основного, это довольно просто. Вы можете указать только нужный путь с помощью testOnly, например, из командной строки sbt

testOnly A.*

Или из командной строки оболочки

sbt 'testOnly A.*'

Фактически, с помощью тестов вы можете даже указать конкретные тесты в тестовом комплекте с помощью

sbt 'testOnly A.* -- -z "dog"'

(примечание, цитирование имеет значение), вы можете запускать только те тесты в пакете a, в которых есть слово «собака» в названии теста

6
задан nick_alot 29 December 2008 в 09:45
поделиться

2 ответа

Рассмотрение этого от строго памяти центральная точка зрения, что за и против использования является Система. IO.MemoryStream по сравнению с Системой. Строка как мой в представлении памяти.

Некоторые факторы, которые я пытаюсь исследовать:

  • Как эти объекты действуют в [гипотетической] высоко фрагментированной низкой среде памяти

IMO, MemoryStream только полезен, когда кодирование тривиально (например, ASCII, ISO-8859-X, и т.д.). Если кодирование будет UTF-8, и у Вас есть символы неASCII, затем обрабатывающие, то станет более трудным. Несомненно, MemoryStream почти наверняка использует меньше памяти, но иначе нет большой части различия. Под капотом MemoryStream использует массив байтов, который также должен быть выделен в непрерывном блоке памяти.

  • Фактический размер в памяти (если поток является UTF8, имейте, мы почти разделили на два размер),

Право, только с символами ASCII, MemoryStream использует половину того, что использует эквивалентная строка.

  • Там другой - объект, о котором я не думал?
List<byte> // has a nicer interface for processing

Как строки хранятся в базе данных? varchar или nvarchar?

С уважением,

Andreas

5
ответ дан 10 December 2019 в 02:55
поделиться

Память строки по сравнению с потоком довольно несущественна. Строки являются utf-16, таким образом, может быть маленькое несколько вовлеченные, но из-за включенных объемов, Вы, вероятно, были бы лучшими от записи данных к рабочему файлу.

Для чтения данных из базы данных используйте методы потоковой передачи; т.е. используйте IDataReader (ExecuteReader), с ним в последовательном режиме, и считайте блоки байтов/символов. Не пытайтесь прочитать весь столбец.

Кроме того, с SQL Server 2008 Вы miht хотят посмотреть на тип потока файла.

Примеры:

4
ответ дан 10 December 2019 в 02:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: