Linq к Sql по сравнению с производительностью платформы объекта

NullPointerException s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException. Они наиболее распространены, но другие способы перечислены на странице NullPointerException javadoc.

Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException, be:

public class Example {

    public static void main(String[] args) {
        Object obj = null;
        obj.hashCode();
    }

}

В первой строке внутри main я явно устанавливаю ссылку Object obj равной null. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.

(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)

15
задан Vyrotek 9 July 2013 в 00:58
поделиться

3 ответа

Я думаю, что необходимо протестировать его несколько другим способом для различения затраты на запуск по сравнению с затратами на выполнение . Платформа Объекта, в частности, имеет существенный затраты на запуск, следующие из потребности скомпилировать представления базы данных (хотя можно сделать это заранее). Аналогично, LINQ имеет понятие скомпилированный запрос , который был бы соответствующим при выполнении запроса многократно.

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

7
ответ дан 1 December 2019 в 04:47
поделиться

Я сделал несколько тестовых страниц asp.net, пытающихся видеть, который работает лучше. Мой тест был:

Удаляют 10 000 записей, Вставляют 10 000 Редактирований записей 10 000 Привязок данных записей 10 000 записей на GridView и отображаются на странице

, я ожидал, что LinqToSQL будет быстрее, но делал, вышеупомянутый LinqToSQL занимает почти 2 минуты, в то время как LinqToEntities занимает меньше чем 20 секунд.

, По крайней мере, для этого теста кажется, что LinqToEntities быстрее. Мои результаты, кажется, соответствуют Вашим также.

я не попробовал Вставку/Редактирование/Удаление/Отображение, больше чем 1 таблица объединилась все же.

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

2
ответ дан 1 December 2019 в 04:47
поделиться

Похоже, это хорошее измерение производительности между LINQ to SQL и Entity Framework.

http://toomanylayers.blogspot.com/2009/01/entity-framework-and- linq-to-sql.html

3
ответ дан 1 December 2019 в 04:47
поделиться
Другие вопросы по тегам:

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