Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Закон дырявых абстракций 
:(
    Опции темы
Wizard_Memfis
Дата 21.5.2008, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 12.2.2007
Где: г. Донецк, Украин а

Репутация: 1
Всего: 4



To zloyden: да уж... smile 
To source777: вопрос состоит не в законе дырявых абстракций, а в том что уровень абстракций позволяет сделать код более читабельным и увеличить скорость разработки, но теряя при этом время выполенния и увеличивая ресурсы!!! smile 

А теперь по сути: вопрос был в следующем "не приведет ли это в большой потере скорости?". Я думаю, это не миф, что for и foreach делают цикл, да вот только foreach хоть и дает сразу абстракцию( объект на выходе), да только скорость его ОЧЕНЬ медленнее, чем for!!! Вот и не будет тоже с LINQ?
 smile 
P. S. какой-то флуд пошел не по теме smile 

Это сообщение отредактировал(а) Wizard_Memfis - 21.5.2008, 15:07
--------------------
www.binary-studio.com
PM MAIL WWW ICQ Skype   Вверх
Neutral13
Дата 21.5.2008, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 4.4.2008

Репутация: нет
Всего: нет



zloyden
Цитата(zloyden @  21.5.2008,  14:49 Найти цитируемый пост)
Для сравнения квип, написаный на куда менее абстрактном дельфи сейчас заниает 17 мегабайт оперативной памяти


Адепт дельфейsmile smile 

PM MAIL   Вверх
zloyden
Дата 21.5.2008, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 21.5.2008

Репутация: нет
Всего: нет



Цитата(Neutral13 @ 21.5.2008,  15:27)
Адепт дельфейsmile smile

Даже если и так smile .
Мои доводы от этого перестают быть обоснованными?
Мое мнение заключается в том, что увеличение абстракции должно быть обоснованным и иметь разумное соотношение между удобством и производительностью, однако к теме моего предидущего поста это мало относится и просьба этот пост не обсуждать, дабы не увести беседу слишком далеко
PM MAIL   Вверх
source777
Дата 21.5.2008, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 4
Всего: 56



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

Цитата(Wizard_Memfis @  21.5.2008,  15:04 Найти цитируемый пост)
Я думаю, это не миф, что for и foreach делают цикл, да вот только foreach хоть и дает сразу абстракцию( объект на выходе), да только скорость его ОЧЕНЬ медленнее, чем for!
Очередное необоснованное утверждение, тем более, что foreach и for в большинстве случаев генерируют в конце концов один и тот же код...



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Wizard_Memfis
Дата 22.5.2008, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 12.2.2007
Где: г. Донецк, Украин а

Репутация: 1
Всего: 4



Цитата

Очередное необоснованное утверждение, тем более, что foreach и for в большинстве случаев генерируют в конце концов один и тот же код...

Это более чем обосновонное утверждение
http://www.gotdotnet.ru/LearnDotNet/CSharp/513899.aspx
Поэтому от foreach вообще принято отказаться! smile 

--------------------
www.binary-studio.com
PM MAIL WWW ICQ Skype   Вверх
zloyden
Дата 22.5.2008, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 21.5.2008

Репутация: нет
Всего: нет



Цитата(source777 @ 21.5.2008,  19:07)
zloyden, ты забыл один базовый постулат: производительность - это комплексная характеристика, которая включает и производительность труда в том числе... В результате применение находят лишь те абстракции, которые увеличивают производительность... 

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

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

Однако человек задал конкретный вопрос про скорость ПРОГРАММЫ, а не про скорость разработки, поэтому считаю необоснованным упоминание производительности работы программиста, как не имеющего в данном случае значение(был задан КОНКРЕТНЫЙ вопрос). 
PM MAIL   Вверх
Wizard_Memfis
Дата 22.5.2008, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 12.2.2007
Где: г. Донецк, Украин а

Репутация: 1
Всего: 4



Цитата

Очередное необоснованное утверждение, тем более, что foreach и for в большинстве случаев генерируют в конце концов один и тот же код...

Это более чем обосновонное утверждение:
http://www.gotdotnet.ru/LearnDotNet/CSharp/513899.aspx
Я думаю это статью видел каждый!
Цитата

генерируют в конце концов один и тот же код

Ерунда, foreach создает еще целый класс-перечислитель( Рихтер)
 smile 
Цитата

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

Вот именно это я и спрашиваю: Дейстительно ли Linq увеличивают производительность, а не производительность разработки???

--------------------
www.binary-studio.com
PM MAIL WWW ICQ Skype   Вверх
source777
Дата 22.5.2008, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 4
Всего: 56



Цитата(Wizard_Memfis @  22.5.2008,  10:46 Найти цитируемый пост)
Дейстительно ли Linq увеличивают производительность, а не производительность разработки???
Про это в приведённых выше ссылках пишут люди, которые имеют непосредственное отношение к самому LINQ, там ещё по внутренним ссылкам пройдись...

Цитата(Wizard_Memfis @  22.5.2008,  10:46 Найти цитируемый пост)
Ерунда, foreach создает еще целый класс-перечислитель( Рихтер)

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

Цитата(Wizard_Memfis @  22.5.2008,  10:46 Найти цитируемый пост)
Это более чем обосновонное утверждение:
http://www.gotdotnet.ru/LearnDotNet/CSharp/513899.aspx
Эта статья - полный шлак, автор, во-первых, не понимает сути того, что он сравнивает(как результат в статье полно сравнений тёплого с мягким), а во-вторых, он даже не понимает что такое разница на порядок... 
Преобразуем один из примеров к виду, который действительно позволяет сравнить однотипные действия:
Код

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;

namespace ConsolePerformanceTests
{
    class Program
    {
        static void Main(string[] args)
        {
            int count = 50000000;
            Stopwatch sw = new Stopwatch();
            list = new int[count];
            for (int i = 0; i < count; ++i)
            {
                list[i] = i;
            }
            sw.Start();
            t_foreach();
            t_foreach();
            t_foreach();
            t_foreach();
            t_foreach();
            sw.Stop();
            Console.WriteLine("foreach - " + sw.ElapsedMilliseconds);
            sw.Reset();
            sw.Start();
            t_for();
            t_for();
            t_for();
            t_for();
            t_for();
            sw.Stop();
            Console.WriteLine("for - " + sw.ElapsedMilliseconds);
            
            
            Console.ReadLine();
        }
        static int[] list;
        static void t_for()
        {
            int a = 0;
            for (int i = 0; i < list.Length; ++i)
            {
                a += list[i];
            }
        }
        static void t_foreach()
        {
            int a = 0;
            foreach (int var in list)
            {
                a += var;
            }
        }
    }
}

Как результат получим:
Код

foreach - 400
for - 687

И где твоё обоснование? А мораль, сей басни такова: 
1) нет ничего абсолютного, всё относительно
2) нет большего зла, чем преждевременная оптимизация

Цитата(Wizard_Memfis @  22.5.2008,  10:38 Найти цитируемый пост)
Поэтому от foreach вообще принято отказаться! 
Глупо, очень глупо. См. мораль, там написано почему...




--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Wizard_Memfis
Дата 22.5.2008, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 12.2.2007
Где: г. Донецк, Украин а

Репутация: 1
Всего: 4



Выйде из Debug и скомпиль свою прогу в Release
у меня такие числа:
foreach - 603
for - 429
Вот тебе и вся мораль! smile 

P. S. Вообще числа у тебя какие-то левые smile  даже в Debug результаты другие, да и прога у тебя выводит в другом порядке, может ты перепутал?


Это сообщение отредактировал(а) Wizard_Memfis - 22.5.2008, 14:11
--------------------
www.binary-studio.com
PM MAIL WWW ICQ Skype   Вверх
HalkaR
Дата 22.5.2008, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 14
Всего: 42



Хм, весело
Realese
foreach - 425
for - 668
Debug
foreach - 879
for - 775
PM MAIL   Вверх
Wizard_Memfis
Дата 22.5.2008, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 12.2.2007
Где: г. Донецк, Украин а

Репутация: 1
Всего: 4



Действительно, интересно...
Если отбросить числа, то у нас на офисе уже у всех другие числа smile 
Но смысл такой:
в Debug for медленнее
а в Release наоборот быстрее
Ерунда какая-то!

P. S. Нашсли комп на офисе у которого все как раз наоборот! smile  smile  smile 

Это сообщение отредактировал(а) Wizard_Memfis - 22.5.2008, 14:28
--------------------
www.binary-studio.com
PM MAIL WWW ICQ Skype   Вверх
zloyden
Дата 22.5.2008, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 21.5.2008

Репутация: нет
Всего: нет



Скомпилируйте в релиз smile 

А для чистоты эксперимента стоит запускать не из студии, а готовый исполняемый файл

Это сообщение отредактировал(а) zloyden - 22.5.2008, 14:43
PM MAIL   Вверх
source777
Дата 22.5.2008, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 4
Всего: 56



Цитата(Wizard_Memfis @  22.5.2008,  14:08 Найти цитируемый пост)
Выйде из Debug и скомпиль свою прогу в Release
типо, ты, если явно не написано, не догадался, что это результаты Release? Спец. для тебя скомпилировал в Debug-режиме:
Код

foreach - 732
for - 707


Добавлено @ 14:53
Цитата(Wizard_Memfis @  22.5.2008,  14:08 Найти цитируемый пост)
P. S. Вообще числа у тебя какие-то левые smile  даже в Debug результаты другие, да и прога у тебя выводит в другом порядке, может ты перепутал?
Тебе исходник предоставлен, так что проверяй, если не веришь... 
А числа зависят от конфигурации компа...

Добавлено через 10 минут и 50 секунд
Wizard_Memfis, открой для себя профайлинг, а не делай поспешных решений, типа "отказаться от foreach", на основе синтетических тестов из статей, как в одном из комментариев к той статье сказали, "статья ни о чём", так и есть...

Добавлено через 14 минут
Можно потратить год на вылизывание каждой строчки программы и добиться прироста быстродействия на 10%, а можно оптимизировав одно из узких мест за 1 день добиться прироста быстродействия на 300%. Но выбор конечно за тобой...

Это сообщение отредактировал(а) source777 - 22.5.2008, 14:54


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
source777
Дата 22.5.2008, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 4
Всего: 56



Вот кстати, если кто-то засомневался в предыдущем примере другой пример:
Код

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;

namespace ConsolePerformanceTests
{
    class Program
    {
        static void Main(string[] args)
        {
            int count = 10000000;
            List<Trio> list = new List<Trio>();
            Stopwatch sw = new Stopwatch();
            sw.Start();
            for (int i = 0; i < count; ++i)
            {
                list.Add(new Trio(i, i+1, i+2));
            }
            sw.Stop();
            Console.WriteLine("List filling - " + sw.ElapsedMilliseconds);
            double a = 0, b = 0;
            sw.Reset();
            sw.Start();
            foreach (Trio t in list)
            {
                if (!t.IsPifagorTriangle)
                {
                    a = t.A / t.C;
                    b = t.B / t.C;
                }
            }
            sw.Stop();
            Console.WriteLine("foreach - " + sw.ElapsedMilliseconds);
            a = 0; b = 0;
            sw.Reset();
            sw.Start();
            for (int i = 0; i < list.Count; ++i)
            {
                if (!list[i].IsPifagorTriangle)
                {
                    a = list[i].A / list[i].C;
                    b = list[i].B / list[i].C;
                }
            }
            sw.Stop();
            Console.WriteLine("for - " + sw.ElapsedMilliseconds);
            Console.ReadLine();
        }

    }

    class Trio
    {
        public int A { get; private set; }
        public int B { get; private set; }
        public int C { get; private set; }
        public Trio(int a, int b, int c)
        {
            A = a; B = b; C = c;
        }
        public bool IsPifagorTriangle {
            get { 
                return (A*A+B*B==C*C); 
            }
        }
    }
}

Результаты запущенных из TotalCmd по третьему разу(для успешной JIT-компиляции) exeшников:
Код

Release:
List filling - 2093
foreach - 469
for - 542


Debug:
List filling - 2354
foreach - 927
for - 1065

В принципе можно написать синтетический тест ещё больше приближенный к реальным программам, и посмотреть, как foreach будет в разы обгонять for, просто время на это сейчас нет, но если кому интересно, то могу пояснить почему так произойдёт...


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Wizard_Memfis
Дата 22.5.2008, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 12.2.2007
Где: г. Донецк, Украин а

Репутация: 1
Всего: 4



Специально для некотрым тыкаю пальчиком в результаты твоих "исходников":
почитай что говорят результаты трех разных людей:
Я
Цитата

Выйде из Debug и скомпиль свою прогу в Release
у меня такие числа:
foreach - 603
for - 429

У zloyden я так предполагяю что тоже тчо-то похожее
И наконец HalkaR
Цитата

Realese
foreach - 425
for - 668
Debug
foreach - 879
for - 775 

И твоих цифр здесь нет!!!
 smile 

P. S. И всегда найдется чел который не верит в очевидные вещи, и будет коментарить чужую статью!Рихтер фуфло, компилятор гонит, статьи тоже ерунда. А я вот знаю все!

P. P. S. У тебя случайно не 3 фреймверк? Я запускаю на 2!


Это сообщение отредактировал(а) Wizard_Memfis - 22.5.2008, 15:53
--------------------
www.binary-studio.com
PM MAIL WWW ICQ Skype   Вверх
source777
Дата 22.5.2008, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 4
Всего: 56



Цитата(Wizard_Memfis @  22.5.2008,  15:50 Найти цитируемый пост)
У тебя случайно не 3 фреймверк? Я запускаю на 2!
3-ий, тебе надо объявления свойств переписать в стиле второго.

Цитата(Wizard_Memfis @  22.5.2008,  15:50 Найти цитируемый пост)
И твоих цифр здесь нет!!!
Цифры от компа зависят, характер результатов у HalkaR такой же как у меня...

Цитата(Wizard_Memfis @  22.5.2008,  15:50 Найти цитируемый пост)
]
И всегда найдется чел который не верит в очевидные вещи, и будет коментарить чужую статью!Рихтер фуфло, компилятор гонит, статьи тоже ерунда. А я вот знаю все!
Ой, и не говори, кстати сегодня такой чел - ты, ну и автор статьи конечно тоже виноват, что запутал тебя smile 








--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
PashaPash
Дата 22.5.2008, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



Wizard_Memfis, JIT в 3-ем и 2-ом фреймворке одинаковые. А вот код, который JIT генерируют для разных машин - разный. И пытатся заранее угадать и прооптимизировать - просто бессмысленно.


--------------------
PM MAIL WWW   Вверх
source777
Дата 22.5.2008, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 4
Всего: 56



P.S. А Рихтера ты невнимательно читал, если читал... 


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Wizard_Memfis
Дата 22.5.2008, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 12.2.2007
Где: г. Донецк, Украин а

Репутация: 1
Всего: 4



Цитата

Ой, и не говори, кстати сегодня такой чел - ты, ну и автор статьи конечно тоже виноват, что запутал тебя

Помойму сейчас ты нехочешь видеть ни характер результатов, ни очевидных вещей. Может читал я и невнимательно, но кто-то его явно не читал!
Этот флуд мне уже надоел!Только у одного человека в офисе был твой результат, у всех остальных for был в разы быстрее!

P. S. Этот разговор не в тему и к чему не приведет!Считаешь так - пиши!Потом может вспомнишь и поймешь... smile  smile  smile 



--------------------
www.binary-studio.com
PM MAIL WWW ICQ Skype   Вверх
source777
Дата 22.5.2008, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 4
Всего: 56



Wizard_Memfis, не смог что ли второй тест запустить, бедненький? 
На тебе адаптированный к .NET 2.0 код класса Trio:
Код

    class Trio
    {
        private int a;
        private int b;
        private int c;
        public int A 
        {
            get { return a; } 
        }
        public int B
        {
            get { return b; }
        }
        public int C
        {
            get { return c; }
        }
        public Trio(int a, int b, int c)
        {
            this.a = a; this.b = b; this.c = c;
        }
        public bool IsPifagorTriangle {
            get { 
                return (A*A+B*B==C*C); 
            }
        }
    }
Потести и удивись smile 

Можно подытожить так: for сам по себе быстрее, чем foreach, но код, использующий for, медленнее, чем код использующий foreach,  при известных (многим, но не тебе и твоему отделу) обстоятельствах, которые встречаются в реальных исходниках в сотни раз чаще, чем в синтетических тестах...  
И Рихтер со мной согласен в отличии от тебя smile

P.S. Но теперь тебе придётся извиняться, чтобы я тебе объяснил суть этих обстоятельств...
P.P.S. Мне искренне жаль твоего работодателя...

Добавлено через 6 минут и 33 секунды
Цитата(Wizard_Memfis @  22.5.2008,  16:46 Найти цитируемый пост)
Этот разговор не в тему и к чему не приведет!
А по теме: не стоит тебе при такой кривизне рук LINQ использовать, а то потом будешь врать по примеру своих знакомых, что LINQ только и делает, что тормозит... 



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Wizard_Memfis
Дата 22.5.2008, 17:12 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 12.2.2007
Где: г. Донецк, Украин а

Репутация: 1
Всего: 4



Не хотел я таким "богатеньким" еще раз писать, а второй великий код просто запускать не хотел.
А слушать твои обяснения основанные на теории дырявых абстракций и другие, не менее ВЕЛИКИЕ теории одной воды!!!слушать и подавно не хочу!!!
Повторю еще раз слова (с опытом придешь, хотя навряд ли)
Цитата

считаешь так - пиши!Потом может вспомнишь и поймешь...



--------------------
www.binary-studio.com
PM MAIL WWW ICQ Skype   Вверх
HalkaR
Дата 22.5.2008, 17:45 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 14
Всего: 42



Господа, у меня почему-то появилось стойкое желание влепить вам каждому по минусу за неуважение к собеседнику, нежелание понять его и откровенное хамство в постах. Вы общаетесь как две базарные торговки не поделившие клиента. Я еще могу понять такое в Религиозных воинах, но здесь то тематический раздел.
Стыдно, господа.
PM MAIL   Вверх
source777
Дата 22.5.2008, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 4
Всего: 56



Цитата(Wizard_Memfis @  22.5.2008,  17:12 Найти цитируемый пост)
Не хотел я таким "богатеньким" еще раз писать, а второй великий код просто запускать не хотел.
ну тогда, ты так и останешься в заблуждении... 



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
zloyden
Дата 23.5.2008, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 21.5.2008

Репутация: нет
Всего: нет



Можно узнать причины? Мне интересно например, а Рихтера я еще не дочитал
PM MAIL   Вверх
source777
Дата 23.5.2008, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 4
Всего: 56



Цитата(zloyden @  23.5.2008,  13:22 Найти цитируемый пост)
Можно узнать причины? Мне интересно например, а Рихтера я еще не дочитал 
Можно, я всё подробно пояснил в личном сообщении. См. пункт "х новых писем" в верхней части форума...



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Veitmen
Дата 24.5.2008, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 10.11.2006
Где: СПБ

Репутация: 3
Всего: 4



Цитата(HalkaR @  22.5.2008,  17:45 Найти цитируемый пост)
Господа, у меня почему-то появилось стойкое желание влепить вам каждому по минусу за неуважение к собеседнику, нежелание понять его и откровенное хамство в постах. Вы общаетесь как две базарные торговки не поделившие клиента. Я еще могу понять такое в Религиозных воинах, но здесь то тематический раздел.
Стыдно, господа.

+1

А вообще мне кажется что спор впустую разводим. Всегда есть ситуации когда один оператор (цикл, функция и т.д.) лучше чем другой и спор бессмыслен на тему что лучше вообще. Foreach удобен и прост при работе с типизированными перечислениями, если не типизированны, то я предпочитаю for. Почему? Я думаю все понятно почему. Приходится делать упаковку и распоковку один лишний раз при использовании foreach. Но это лирика. Что касается Linq, то это очень удобный инструмент, и не использовать его глупо, даже если он работает чуть медленнее. Никто не говорит о очень большом отставании в производительности. Ведь у мелкомягких тоже не дураки сидят и ерунду предлагать не будут. Linq to sql вообще божественная штука. Включает оптимизаци запросов для MS sql Server, удобство и еще много всяких приколов. Короче юзать надо, даже если есть отставание в производительности, но если оно и есть, то оно слишком мало что бы принебречь использовать сей прекрасный инструмент.  smile 
PM MAIL ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1226 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.