| 1 … 4 5 6 7 8 9 10 11 12 13 14 … 92 |
| Re[19]: Работа - с чего начать: С++ или С#? | |
| От: | COFF | ||
| Дата: | 16.03.09 15:20 |
| Здравствуйте, BulatZiganshin, Вы писали: BZ>точно. а продуманная структура управления регистрами и явное использование адресов памяти в программе ещё круче, вот только несколько дороговато в разработке. язык — это средство описания алгоритма, а не детального расписывания того, что должен процессор делать каждый из 3 миллиардов циклов в секунду :) если ты так нацелен контролировать свой процессор, то тебе нужны машкоды и что-нибудь неспекулятивное :) Язык должен быть в состоянии и описать алгоритм на высоком уровне, и дать возможность распределить регистры если это нужно (а это иногда бывает нужно). Дать возможность использовать сборку мусора, где удобно, или отказаться от нее. Вот это идеал, с моей точки зрения. Сейчас C++ по сравнению с другими распространенными языками наиболее близко подходит к нему, поэтому и популярен. А когда говорят, что ручное распределение памяти вам не нужно, регистры вам не нужны, ваше дело высокоуровнево алгоритмы описывать, то сразу же возникает вопрос, а как тогда эти задачи решать и кто их будет решать? Инопланетяне? :) |
| Re[21]: Работа - с чего начать: С++ или С#? | |
| От: | NikeByNike | ||
| Дата: | 16.03.09 15:20 |
| Здравствуйте, BulatZiganshin, Вы писали: BZ>в языках без gc расход памяти меньше в краткосрочном плане. а вот когда память выделяется, возвращается, снова выделяется — ты получаешь фрагментированную память и ничего с ней не поделаешь. поэтому для таких программ GC выгодней — есть хоть гарантии что расход памяти будет не более чем в три раза выше, нежели реальное использование. в c++ гарантий никаких Ага, напоминает известное предложение ставить большие баки на речные суда и заполнять их водой. Типа если натыкаешься на мель — просто сливаешь воду и плывёшь себе дальше |
| Re[18]: Работа - с чего начать: С++ или С#? | |
| От: | BulatZiganshin | ||
| Дата: | 16.03.09 15:28 |
| Здравствуйте, NikeByNike, Вы писали: NBN>Здравствуйте, BulatZiganshin, Вы писали: BZ>>я в это не вкладываю какое-то идеологическое наполнение, просто мне не нравится термин "управляемые языки", поскольку ВМ я как раз считаю не самым важной в них вещью. мой опыт программирования говорит, что принципиальна как раз GC, поскольку он позволяет не задумываться о выделении и освобождении памяти и тем самым писать алгоритмы в более высокоуровневой манере. представь себе, что ты в док-ве мат. теоремы описываешь "а здесь мы освобождаем значение x, поскольку оно нам не понадобится в дальнейшем ходе док-ва" NBN>Я когда пишу на С++ — просто выделяю память, и не занимаюсь её освобожденим — пока в этом нет необходимости. NBN>Мемориликов в годовалом проекте нет, хотя в ходе разработки тестирования на лики не производилось. на фортране вообще не было распределения памяти, вопрос только в том, в каком стиле при этом приходится программировать и за какими ограничениями следить, чтобы не дай бог не потерять память |
| Re[20]: Работа - с чего начать: С++ или С#? | |
| От: | gandjustas | ||
| Дата: | 16.03.09 15:28 | ||
| Оценка: | ![]() | ||
| Здравствуйте, NikeByNike, Вы писали: NBN>Здравствуйте, gandjustas, Вы писали: G>>В такой аналогии нужно больше деталей. G>>GC не собирает память пока это никому не мешает, как только заполнится первое поколение — сразу же уберет, а то что не успел удбрать — сложит в другое полколение. NBN>И тут вжииик, и оказывается что у меня на компе мало памяти... Всего гиг. Пока не поставил серьёзное ява приложение не догадывался, что у меня мало памяти. Сейчас память стоит очень дешево, купить себе пару гигов может позволить каждый. G>>Вот так и с дворником — пока мусор никому не мешает, он его убирать не будет, перед тем как кому-то он сможет помешать — сразу же уберет. NBN>Ага, особенно это интересно на телефоне, где тебе приходится заниматься колдовством, вместо нормального распределения ограниченного ресурса В телефони памяти просто мало, там нельзя писать также как на PC, память будет кончаться независимо от языка. |
| Re[22]: Работа - с чего начать: С++ или С#? | |
| От: | BulatZiganshin | ||
| Дата: | 16.03.09 15:30 | ||
| Оценка: | -2 | ||
| Здравствуйте, NikeByNike, Вы писали: NBN>Ага, напоминает известное предложение ставить большие баки на речные суда и заполнять их водой. Типа если натыкаешься на мель — просто сливаешь воду и плывёшь себе дальше читай внимательно. в языках с gc гарантия — на 3x, можно и меньше. в C++ — гарантий никаких, расход может быть каким угодно прсто потому что память усеяна мелкими дырками |
| Re[22]: Работа - с чего начать: С++ или С#? | |
| От: | gandjustas | ||
| Дата: | 16.03.09 15:30 |
| Здравствуйте, denisko, Вы писали: D>Здравствуйте, BulatZiganshin, Вы писали: BZ>>Здравствуйте, COFF, Вы писали: COF>>>Так вот дворник сидит и смотрит — вроде пока мусор никому не мешает ходить, можно еще покурить или даже поспать BZ>>а ты следишь за всеми процесами в системе и напрягаешься от мусора в памяти? BZ>>в языках без gc расход памяти меньше в краткосрочном плане. а вот когда память выделяется, возвращается, снова выделяется — ты получаешь фрагментированную память и ничего с ней не поделаешь. поэтому для таких программ GC выгодней — есть хоть гарантии что расход памяти будет не более чем в три раза выше, нежели реальное использование. в c++ гарантий никаких D>Обычно, для однотипных данных, которых много, выделяют тем или иным способ свой уже фрагментированный пул. Это позволяет 1) контролировать тех, кто не отдал память вовремя 2) работать быстро и со строго ограниченным сверху размером выделенной памяти. А некоторые вообще пишут свой GC... D>Кто сказал, что GC ГАРАНТИРУЕТ выделение памяти не более чем три раза больше чем в данный момент используется системой? Этого не гарантирует даже аллокатор ОС, в принципе этого не может гарантировать никто. |
| Re[20]: Работа - с чего начать: С++ или С#? | |
| От: | BulatZiganshin | ||
| Дата: | 16.03.09 15:32 |
| Здравствуйте, COFF, Вы писали: COF>Язык должен быть в состоянии и описать алгоритм на высоком уровне, и дать возможность распределить регистры если это нужно (а это иногда бывает нужно). Дать возможность использовать сборку мусора, где удобно, или отказаться от нее. Вот это идеал, с моей точки зрения. Сейчас C++ по сравнению с другими распространенными языками наиболее близко подходит к нему, поэтому и популярен. А когда говорят, что ручное распределение памяти вам не нужно, регистры вам не нужны, ваше дело высокоуровнево алгоритмы описывать, то сразу же возникает вопрос, а как тогда эти задачи решать и кто их будет решать? Инопланетяне? я их и решаю на C++. когда это необходимо. а остальное пишу на хаскеле. учитывая, что >90% кода не нуждается в ассемблерной эффективности, писать всё на С++ — это всё равно что всюду таскать с собой ружьё на случай нападения медведя из ЕР |
| Re[20]: Работа - с чего начать: С++ или С#? | |
| От: | BulatZiganshin | ||
| Дата: | 16.03.09 15:35 |
| Здравствуйте, NikeByNike, Вы писали: NBN>И тут вжииик, и оказывается что у меня на компе мало памяти... Всего гиг. Пока не поставил серьёзное ява приложение не догадывался, что у меня мало памяти. у меня столько один firefox сейчас жрёт G>>Вот так и с дворником — пока мусор никому не мешает, он его убирать не будет, перед тем как кому-то он сможет помешать — сразу же уберет. NBN>Ага, особенно это интересно на телефоне, где тебе приходится заниматься колдовством, вместо нормального распределения ограниченного ресурса вот на телефоне и занимайся шаманством с памятью на С, в 80-х годах мы как-то умещались в 640 кб |
| Re[23]: Работа - с чего начать: С++ или С#? | |
| От: | denisko | ||
| Дата: | 16.03.09 15:36 |
| Здравствуйте, gandjustas, Вы писали: G>А некоторые вообще пишут свой GC... Выделить пулы не требует написания кода практически. D>>Кто сказал, что GC ГАРАНТИРУЕТ выделение памяти не более чем три раза больше чем в данный момент используется системой? G>Этого не гарантирует даже аллокатор ОС, в принципе этого не может гарантировать никто. А два сообщения выше вы написали, что гарантия 3x Правда уши менингит! |
| Re[22]: Работа - с чего начать: С++ или С#? | |
| От: | BulatZiganshin | ||
| Дата: | 16.03.09 15:36 |
| Здравствуйте, denisko, Вы писали: D>Обычно, для однотипных данных, которых много, выделяют тем или иным способ свой уже фрагментированный пул. Это позволяет 1) контролировать тех, кто не отдал память вовремя 2) работать быстро и со строго ограниченным сверху размером выделенной памяти. ага. когда у тебя 10 библиотек, они вилимо собираются вместе и договариваются об общем пуле D>Кто сказал, что GC ГАРАНТИРУЕТ выделение памяти не более чем три раза больше чем в данный момент используется системой? Я! |
| Re[20]: Работа - с чего начать: С++ или С#? | |
| От: | gandjustas | ||
| Дата: | 16.03.09 15:37 |
| Здравствуйте, COFF, Вы писали: COF>Здравствуйте, gandjustas, Вы писали: G>>В такой аналогии нужно больше деталей. G>>GC не собирает память пока это никому не мешает, как только заполнится первое поколение — сразу же уберет, а то что не успел удбрать — сложит в другое полколение. G>>Вот так и с дворником — пока мусор никому не мешает, он его убирать не будет, перед тем как кому-то он сможет помешать — сразу же уберет. COF>Так вот дворник сидит и смотрит — вроде пока мусор никому не мешает ходить, можно еще покурить или даже поспать А программа на C++ будет корректировать выделние памяти в зависимости от загруженности компьютера? Конечно нет. И GC не будет. А если кончится реальная физическая память, то страницы будут вытеснены, а освободившая память отдастся тому кому оно нужно. |
| Re[21]: Работа - с чего начать: С++ или С#? | |
| От: | NikeByNike | ||
| Дата: | 16.03.09 15:40 | ||
| Оценка: | +1 | ||
| Здравствуйте, BulatZiganshin, Вы писали: BZ>вот на телефоне и занимайся шаманством с памятью на С, в 80-х годах мы как-то умещались в 640 кб Сам пиши в машинных кодах. |
| Re[21]: Работа - с чего начать: С++ или С#? | |
| От: | NikeByNike | ||
| Дата: | 16.03.09 15:42 |
| Здравствуйте, gandjustas, Вы писали: COF>>Так вот дворник сидит и смотрит — вроде пока мусор никому не мешает ходить, можно еще покурить или даже поспать G>А программа на C++ будет корректировать выделние памяти в зависимости от загруженности компьютера? Конечно нет. И GC не будет. G>А если кончится реальная физическая память, то страницы будут вытеснены, а освободившая память отдастся тому кому оно нужно. И тут можно доставать травку, чтобы картинка на мониторе выглядела более плавной |
| Re[21]: Работа - с чего начать: С++ или С#? | |
| От: | COFF | ||
| Дата: | 16.03.09 15:42 | ||
| Оценка: | +3 | ||
| Здравствуйте, gandjustas, Вы писали: G>А программа на C++ будет корректировать выделние памяти в зависимости от загруженности компьютера? Конечно нет. И GC не будет. G>А если кончится реальная физическая память, то страницы будут вытеснены, а освободившая память отдастся тому кому оно нужно. Я не хочу вдаваться в детали, можно дискутировать об особенностях выделения памяти с gc или без него сколь угодно долго, но факт налицо — управляемые приложения на десктопе тормозят и жрут память. В теории возможно они хороши, а C++ плох, но практика пока этого не показывает. |
| Re[21]: Работа - с чего начать: С++ или С#? | |
| От: | NikeByNike | ||
| Дата: | 16.03.09 15:44 | ||
| Оценка: | +1 ![]() | ||
| Здравствуйте, gandjustas, Вы писали: G>А программа на C++ будет корректировать выделние памяти в зависимости от загруженности компьютера? Конечно нет. При необходимости? Конечно да! G>И GC не будет. Потому что не сможет |
| Re[21]: Работа - с чего начать: С++ или С#? | |
| От: | COFF | ||
| Дата: | 16.03.09 15:45 | ||
| Оценка: | +1 | ||
| Здравствуйте, BulatZiganshin, Вы писали: BZ>я их и решаю на C++. когда это необходимо. а остальное пишу на хаскеле. учитывая, что >90% кода не нуждается в ассемблерной эффективности, писать всё на С++ — это всё равно что всюду таскать с собой ружьё на случай нападения медведя из ЕР :)) Вообще, изначально вопрос стоял так — стоит ли учить C++ или C#? Я так понимаю, что все-таки C++? ;) |
| Re[23]: Работа - с чего начать: С++ или С#? | |
| От: | NikeByNike | ||
| Дата: | 16.03.09 15:46 |
| Здравствуйте, BulatZiganshin, Вы писали: BZ>читай внимательно. в языках с gc гарантия — на 3x, можно и меньше. в C++ — гарантий никаких, расход может быть каким угодно прсто потому что память усеяна мелкими дырками C++ очень универсальный язык |
| Re[20]: Работа - с чего начать: С++ или С#? | |
| От: | gandjustas | ||
| Дата: | 16.03.09 15:49 | ||
| Оценка: | -1 ![]() | ||
| Здравствуйте, COFF, Вы писали: COF>Здравствуйте, BulatZiganshin, Вы писали: BZ>>точно. а продуманная структура управления регистрами и явное использование адресов памяти в программе ещё круче, вот только несколько дороговато в разработке. язык — это средство описания алгоритма, а не детального расписывания того, что должен процессор делать каждый из 3 миллиардов циклов в секунду COF>Язык должен быть в состоянии и описать алгоритм на высоком уровне, и дать возможность распределить регистры если это нужно (а это иногда бывает нужно). Дать возможность использовать сборку мусора, где удобно, или отказаться от нее. Вот это идеал, с моей точки зрения. Сейчас C++ по сравнению с другими распространенными языками наиболее близко подходит к нему, поэтому и популярен. А когда говорят, что ручное распределение памяти вам не нужно, регистры вам не нужны, ваше дело высокоуровнево алгоритмы описывать, то сразу же возникает вопрос, а как тогда эти задачи решать и кто их будет решать? Инопланетяне? Язык C++ не обладает возможностью описать алгоритм на высоком уровне. Если не верите, то попробуйте написать алгоритм решения задачи: "вывести на экран все строки текстового файла, в которых более трех слов, отсортированные по алфавиту". Причем это долно быть не наколеночное решение, а production-quality код, в котором можно без особых услий убрать условие, или сделать вывод только уникальных строк, или вывод строк через одну. |
| Re[16]: Работа - с чего начать: С++ или С#? | |
| От: | MxKazan | ||
| Дата: | 16.03.09 15:51 |
| Здравствуйте, COFF, Вы писали: COF>Ну, беты появились года за два до релиза — вот и выходит почти 10 лет. Ну, отсчитывать от бет неприлично. Не думаешь же ты, что кто-то начинал переводить проекты при бете COF>Потом, почему именно 2.0? Где гарантия, что завтра не будешь говорить то же самое про 3.5? Черт. Я знал, что так напишешь COF>Вообще, я же не против .нет, я против огульного охаивания C++ определенными дот-нетчиками Вот тут я тебя полностью понимаю. И я тоже против огульного охаивания .Net и его приравнивания к VB. Эдди, да начхать нам на Таггарта и таких, как он. Мы ведем экспресс, а они едут на крыше и надрывно кричат о том, что они всем руководят и все зависит только от них. Пусть кричат. Мы ведь не надорвемся, везя их? |
| Re[22]: Работа - с чего начать: С++ или С#? | |
| От: | gandjustas | ||
| Дата: | 16.03.09 16:08 | ||
| Оценка: | ![]() | ||
| Здравствуйте, COFF, Вы писали: COF>Здравствуйте, gandjustas, Вы писали: G>>А программа на C++ будет корректировать выделние памяти в зависимости от загруженности компьютера? Конечно нет. И GC не будет. G>>А если кончится реальная физическая память, то страницы будут вытеснены, а освободившая память отдастся тому кому оно нужно. COF>Я не хочу вдаваться в детали, можно дискутировать об особенностях выделения памяти с gc или без него сколь угодно долго, но факт налицо — управляемые приложения на десктопе тормозят и жрут память. В теории возможно они хороши, а C++ плох, но практика пока этого не показывает. Ну покажите примеры программ на десктопе которые тормозят и жрут память? Я постоянно пользуюсь двумя десктомпными программами на .NET : paint.NET и Windows Live Writer, ни одна из них не тормозит и не жрет память. Журт панять у меня на компе больше всего в доску неуправляемые браузеры. Не надо в качестве примера приводить плохо написанные программы на .NET или java, плохо написанных программ на С++ все равно больше. |
| 1 … 4 5 6 7 8 9 10 11 12 13 14 … 92 |