Что означает "дорогостоящий" с точки зрения программных операций?

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

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

5 ответов

Решение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам