Что означает «дорогостоящий» с точки зрения программных операций? - PullRequest
0 голосов
/ 27 марта 2012

То, что подразумевается под Операцией, является дорогостоящим или ресурс является дорогостоящим с точки зрения Программного обеспечения.Когда я сталкиваюсь с некоторыми документами, они упоминают что-то вроде открытия файла каждый раз, когда это дорогостоящая операция.У меня может быть больше примеров, подобных этому (соединение с базой данных является дорогостоящей операцией, пул потоков является более дешевым и т. Д.).На каком основании было решено, стоит ли задача или операция дорого или дешевле?Когда мы рассчитываем это, какие ограничения учитывать?На основании времени тоже?

Примечание: Я уже проверил в сети с этим, но я не получил никакого хорошего объяснения.Если вы нашли, пожалуйста, поделитесь со мной, и я могу закрыть это ..

Ответы [ 5 ]

5 голосов
/ 27 марта 2012

Дорого или Дорого - это операции, которые вызывают использование большого количества ресурсов, таких как ЦП, дисковод(s) или Память

Например, создание целочисленной переменной в коде не является дорогостоящей или дорогой операцией

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

Чтобы создавать масштабируемые, быстрые приложения, вы, как правило, хотите минимизировать частоту выполнения этих дорогостоящих / дорогостоящих действий, применяя методы оптимизации, кэширования, параллелизма (и т. Д.) Там, где они необходимы для работы программного обеспечения.

Чтобы получить степень точности и некоторые реальные цифры о том, что «дорого», а что «дешево» вваше приложение, вы бы использовали какой-то инструмент профилирования или анализа.Для JavaScript есть ySlow - для приложений .NET dotTrace - я был бы уверен, что для любой платформы существует аналогичное решение.Затем кто-то должен понять результат, который, вероятно, является самой важной частью!

1 голос
/ 27 марта 2012

Я попытаюсь объяснить на нескольких примерах:

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

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

Когда вы начинаете ругаться, очень малое количество потраченного времени превращается в очень большую трату ресурсов Компании.

1 голос
/ 27 марта 2012

Время работы, использование памяти или использование полосы пропускания являются наиболее типичными интерпретациями «стоимости».Также учтите, что это может относиться к стоимости во время разработки.

0 голосов
/ 27 марта 2012

Обычно дорогостоящим означает, очень упрощенно, что это займет намного больше времени, чем операция с памятью.

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

Это, повторяю, очень упрощенное объяснение. То, что дорогостоящие средства, зависит от вашего конкретного контекста, количества выполняемых операций и общей архитектуры системы.

0 голосов
/ 27 марта 2012

Почти наверняка речь идет о потере времени при выполнении такого рода ввода / вывода. Много перетасовок памяти (копирование объектов, созданных из классов с большим количеством членов) - это еще одна трата времени (передача по ссылке помогает устранить многое из этого).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...