powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / О применимость языков
25 сообщений из 296, страница 10 из 12
О применимость языков
    #39041516
Adx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Adx
Гость
Dima TAdx,

я тебя понять не могу к чему ты все адресованное мне написал. У нас с Зимарглом было обсуждение проблемы подкачки с диска (заметь мы друг-друга поняли), а тут ты со своими постами в какую-то другую сторону, я честно не понимаю к чему ты это все написал.
Давай проще, начни с конца: пиши сразу к чему ты ведешь, что доказываешь, что я по твоему не понимаю. А я тебе отвечу так оно или нет.

Без проблем. Вы оба исходите по некоторым вопросам из неверных предположений. Я пытался это объяснить.
1) Простое приложение на .NET грузит диск (эта самая подкачка) ничуть не больше чем написанное на C++ безо всякого .NET
Независимо от размера всего фреймворка.
2) В .NET есть много механизмов загрузки сборок. Можно загрузить ее в память сразу, и потом уже не происходит обращения к диску.
3) Ошибки страниц не стопроцентный показатель, зависит от приложения.
4) Насчет кэширования Вы писали, замечу только, что своппинг генерит ошибки страниц со страшной силой.
...
Рейтинг: 0 / 0
О применимость языков
    #39041532
Adx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Adx
Гость
ЗимарглТам есть исходный код. Бери, компилируй с разными ключами. Смотри код.

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

...

Ты не тот скорее всего параметр смотришь. Минимальный футпринт дНет приложения занимает примерно 10Мб в памяти.

Я думал, для C# тоже есть.
У меня 5 mb.
...
Рейтинг: 0 / 0
О применимость языков
    #39041564
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗимарглDima T.... Запустил свою поделку консольную на C# - 1,4 Мб.
...
Опять же все зависит о задачи. Насколько критично сэкономить 10-100 Мб ОЗУ, фремворк это ж не только занимание памяти, но и облегчение и ускорение разработки.
...

Ты не тот скорее всего параметр смотришь. Минимальный футпринт дНет приложения занимает примерно 10Мб в памяти. Я писал выше, что смотреть в диспетчере задач.
Как понимаю речь об этом
Зимарглmayton...
- Прошу вас написать краткую инструкцию по замеру футпринта.

Я сходу не смогу придумать адекватный и _воспроизводимый_ академический метод.
Когда смотрел для себя - просто засекал дельту свободной памяти при выгрузке отработавшего приложения.

В Win7 Это совпадает с показателем "Память - Рабочий набор".
Объем же фреймворка, подлинкованного но не загруженного можно увидеть в "Память - выделенная память". Но боюсь, для языков с широкм использованием динамического связывания это не годится.
Смотрю на свою программулину (вообще она для поиска одинаковых файлов на диске, но без параметров просто выдает справку о командной строке и висит ждет нажатия на кнопку)
Рабочий набор 6,7 Мб
Выделенная память 4,8 Мб
Частный рабочий набор 1,4 Мб
читаем хэлп что это означаетПамять - рабочий набор
Объем памяти в частном рабочем наборе плюс объем памяти, используемой процессом, которую нельзя использовать совместно с другими процессами.

Память - пик рабочего набора
Максимальный объем памяти рабочего набора, использованный процессом.

Память - дельта рабочего набора
Изменение объема памяти рабочего набора, используемой процессом.

Память - частный рабочий набор
Частный рабочий набор показывает конкретный объем используемой процессом памяти, который данный процесс не может использовать совместно с другими процессами.

Память - выделенная память
Объем виртуальной памяти, выделенной процессу.

Память - выгружаемый пул
Объем страничной виртуальной памяти ядра, выделенной ядром или драйверами процессу. Страничная виртуальная память - это память, которую можно переписать на другой носитель, например жесткий диск.

Память - невыгружаемый пул
Объем невыгружаемой памяти ядра, выделенной ядром или драйверами процессу. Невыгружаемая память - это память, которую нельзя переписать на другой носитель.

Мутно немного написано, но куда надо смотреть зависит от задачи. Например
1. у нас одна копия проги то заняли Рабочий набор, т.е. там и данные и код проги, и фрэймворк.
2. у нас N процессов одной и той же проги, то займет она Рабочий набор + (N - 1) * Частный рабочий набор.
3. у нас N разных прог, но на одном фрэймворке, фрэймворк в реальной памяти тоже будет однократно размещен, поэтому будет как в п.2 плюс размер самих прог (без фрэймворка)

ЗимарглНасколько критично 50Мб Озу на процесс вебсервера можешь посмотреть в статье про multitenant JVM выше по топику.
По сути это п.2. т.е. фрэймворк реальную память займет один раз. Другой вопрос сколько займет каждый процесс во время работы, но это уже не только от фрэймворка зависит, но и от кривизны рук разработчика.
...
Рейтинг: 0 / 0
О применимость языков
    #39041616
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я встречал конфигурации когда на 1 хосте запускают 2 JBoss в балансере. На обоих одно и то-же приложение.
Не в кластере но взаимодействующе с общим пулом БД.

Таким образом админы на стороне заказчика подстраховывались от внезапных падений. У них был демон
который периодически ходил на http порт и вытягивал ответ и анализировал отклик. Если отклик превышал
3-5 секунд то демон давал kill + ребут для экземпляра jboss который подвис.
...
Рейтинг: 0 / 0
О применимость языков
    #39041621
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AdxDima TAdx,

я тебя понять не могу к чему ты все адресованное мне написал. У нас с Зимарглом было обсуждение проблемы подкачки с диска (заметь мы друг-друга поняли), а тут ты со своими постами в какую-то другую сторону, я честно не понимаю к чему ты это все написал.
Давай проще, начни с конца: пиши сразу к чему ты ведешь, что доказываешь, что я по твоему не понимаю. А я тебе отвечу так оно или нет.

Без проблем. Вы оба исходите по некоторым вопросам из неверных предположений. Я пытался это объяснить.
1) Простое приложение на .NET грузит диск (эта самая подкачка) ничуть не больше чем написанное на C++ безо всякого .NET
Независимо от размера всего фреймворка.
2) В .NET есть много механизмов загрузки сборок. Можно загрузить ее в память сразу, и потом уже не происходит обращения к диску.
3) Ошибки страниц не стопроцентный показатель, зависит от приложения.
4) Насчет кэширования Вы писали, замечу только, что своппинг генерит ошибки страниц со страшной силой.
1. Согласен. Обратного не утверждал.
2. Согласен. Обратного не утверждал.
3. У тебя просто недопонимание как все устроено, почитай книжку про устройство виртуальной памяти, адресное пространство процесса и т.п.
Пример (кратко): процесс А спроецировал в свое адресное пространство файл (пофиг какой EXE, DLL, TXT), затем произошло обращение к первому байту (пофиг как: данные прочитать или код там выполнить) происходит исключение, менеджер памяти его перехватывает, читает с диска первые 4 кб файла в реальную память (вот она страница), подставляет эту реальную память просессу и возвращает управление проге, прога дальше работает. Запускается прога Б, проецирует этот же файл, обращается к первому байту, происходит исключение, счетчик ошибок страниц увеличивается, но менеджер памяти видит что эта страница уже есть в реальной памяти, поэтому он НЕ читает с диска, он просто подсовывает ее в процесс Б. Т.е. два процесса А и Б реально используют одни и теже 4 кб реальной памяти.
4. Свопинг это результат ошибок страниц, т.е. когда данных/кода нет в памяти они читаются с диска. Кроме того есть еще запись в своп для освобождения памяти. Читай книжку :)
...
Рейтинг: 0 / 0
О применимость языков
    #39041655
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cpt. GrayРоберту нужно было в начале предложения добавить "ИМХО"
Говорить, что Джава "слабее, из-за того, что в ней нет множественного наследования, указателей и шаблонов как-то уж очень холли варно..
"У пистолета Макарова нет автоматического режима огня, оптического прицела и патрона, позволяющего поражать цели на значительном удалении. Поэтому по мощи и универсальности он уступает автомату". Не вижу в этой фразе ничего холиварного, просто констатация факта.
...
Рейтинг: 0 / 0
О применимость языков
    #39041673
Зимаргл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AdxБез проблем. Вы оба исходите по некоторым вопросам из неверных предположений. Я пытался это объяснить.
1) Простое приложение на .NET грузит диск (эта самая подкачка) ничуть не больше чем написанное на C++ безо всякого .NET
Независимо от размера всего фреймворка.

Докажи. Я предъявлял ошибки страниц при использования интерфейса. И их гораздо больше в дНет программе, чем в написанной С++ и даже на Яве.
...
Рейтинг: 0 / 0
О применимость языков
    #39041678
Adx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Adx
Гость
Dima T,
У Вас некоторая путаница. Вы пишите что происходит при загрузке файла в определенной ситуации. А потом обобщаете это на все понятие "ошибки страниц". И все это завязывается на загрузку приложения и набор его DLL (сборок, которые можно грузить по-разному и в разное время). С механизмом загрузки файла я не спорю, не нужно меня в этом убеждать.
Ладно, тема не об этом. Основное - это первые два пункта. Если тут спора нет, то значит эти вопросы не к Вам )

softwarer"У пистолета Макарова нет автоматического режима огня, оптического прицела и патрона, позволяющего поражать цели на значительном удалении. Поэтому по мощи и универсальности он уступает автомату". Не вижу в этой фразе ничего холиварного, просто констатация факта.

Не согласен. Автомат не подходит для скрытого ношения, занимает много места, мощность патрона избыточна во многих ситуациях (рикошеты и пули на излете). Где универсальность? )
...
Рейтинг: 0 / 0
О применимость языков
    #39041680
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AdxНе согласен. Автомат не подходит для скрытого ношения, занимает много места, мощность патрона избыточна во многих ситуациях (рикошеты и пули на излете). Где универсальность? )
Представьте себе список различных возможных ситуаций и галочки "пистолет подходит - не подходит", "автомат подходит - не подходит". Универсальность в количестве галочек.
...
Рейтинг: 0 / 0
О применимость языков
    #39041686
Adx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Adx
Гость
ЗимарглAdxБез проблем. Вы оба исходите по некоторым вопросам из неверных предположений. Я пытался это объяснить.
1) Простое приложение на .NET грузит диск (эта самая подкачка) ничуть не больше чем написанное на C++ безо всякого .NET
Независимо от размера всего фреймворка.

Докажи. Я предъявлял ошибки страниц при использования интерфейса. И их гораздо больше в дНет программе, чем в написанной С++ и даже на Яве.

Какого интерфейса?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
using System;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.ReadLine();
            Console.WriteLine(@"hello world");
            Console.ReadLine();
        }
    }
}



Вот код. Посчитай ошибки страниц. Консольное приложение под .NET, VS 2013, сборок в references нет. Убираем отладку и ставим оптимизацию.
...
Рейтинг: 0 / 0
О применимость языков
    #39041689
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T2. у нас N процессов одной и той же проги, то займет она Рабочий набор + (N - 1) * Частный рабочий набор.
Затестил. Подтверждается моя теория.
Text.exeWin 32 без консоли .Net 4.0
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
    class Program
    {
        static void Main(string[] args)
        {
            for (Int32 i = 0; i < 10; i++) {
                Thread.Sleep(1000);
            }
        }
    }


Рабочий набор 6,1 Мб
Выделенная память 4,8 Мб
Частный рабочий набор 1,4 Мб
Запустил 100 процессов, наблюдал в диспетчере параметр "Физическая память (Мб) всего свободно". Для 100 процессов уменьшилось на 162-166 Мб. Т.е. ~1,6 Мб на процесс.
...
Рейтинг: 0 / 0
О применимость языков
    #39041715
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗимарглДокажи. Я предъявлял ошибки страниц при использования интерфейса. И их гораздо больше в дНет программе, чем в написанной С++ и даже на Яве.
Тот же тест 18100590 каждый из 100 процессов показывает 1500 ошибок страниц, но это не означает 150000 обращений к диску.
Выше писал
Dima TПример (кратко): процесс А спроецировал в свое адресное пространство файл (пофиг какой EXE, DLL, TXT), затем произошло обращение к первому байту (пофиг как: данные прочитать или код там выполнить) происходит исключение, менеджер памяти его перехватывает, читает с диска первые 4 кб файла в реальную память (вот она страница), подставляет эту реальную память просессу и возвращает управление проге, прога дальше работает. Запускается прога Б, проецирует этот же файл, обращается к первому байту, происходит исключение, счетчик ошибок страниц увеличивается, но менеджер памяти видит что эта страница уже есть в реальной памяти, поэтому он НЕ читает с диска, он просто подсовывает ее в процесс Б. Т.е. два процесса А и Б реально используют одни и теже 4 кб реальной памяти.
Я к тому что ты некорректно трактуешь значение "ошибки страниц". По твоему 1 ошибка = 1 чтение с диска. Это не так.
...
Рейтинг: 0 / 0
О применимость языков
    #39041740
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тот же тест на С
Test.exeWin 32 без консоли
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#include <windows.h> 

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
	for(int i = 0; i < 10; i++) Sleep(1000);
	return 0;
}


Рабочий набор 2,0 Мб
Выделенная память 0,6 Мб
Частный рабочий набор 0,5 Мб
Ошибок страниц 533
Запустил 100 процессов, наблюдал в диспетчере параметр "Физическая память (Мб) всего свободно". Для 100 процессов уменьшилось на 48-52 Мб. Т.е. ~0,5 Мб на процесс.

Как бы не намного разница: .Net занял на 1 Мб больше.

Что касается ошибок страниц, так они точно сответствуют формуле Рабочий набор*256, т.к. 1 Мб = 256 страниц. Т.е. в данном случае это просто показатель сколько используется страниц в виртуальном адресном пространстве данного процесса.
...
Рейтинг: 0 / 0
О применимость языков
    #39041745
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги.

Я думаю что нам стоит пока отложить замер "ошибок страниц".
Я имею в виду в отношении бенчмаркок С++/Java/dNet/Python. Бох весть еще какие цифры
у нас полезут в Linux окружении. Это путает карты.
...
Рейтинг: 0 / 0
О применимость языков
    #39041756
Adx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Adx
Гость
Dima TРабочий набор 6,1 Мб
Выделенная память 4,8 Мб
Частный рабочий набор 1,4 Мб

У меня этот же код:

Рабочий набор 5,3 Мб
Выделенная память 4,4 Мб
Частный рабочий набор 1,1 Мб

Все, прекращаю оффтопить )
...
Рейтинг: 0 / 0
О применимость языков
    #39041759
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо какой-то тест изобрести, близкий к реальности, но не очень тривиальный. Линуксы предлагаю пока в стороне оставить.

Вариант теста: сгенерить текстовый файлик с иерархическим списком но в разнобой, затем отсортировать, сохранить в другой файл.
типа23.44.1. опдлываопдл
1.2. павлыопыавлопж
...
формат строки: X.X....X.{пробел}текст
где X 1-2 знака. Количество Х-ов до 5. Общая длина строки до 100 байт.

Замеряем:
1. Время на загрузку
2. Время на сортировку
3. Время на сохранение

Размер исходного файла подобрать чтобы 5-10 сек молотило.

Могу генератор написать чтоб файлик у всех одинаковый был. Тогда результат на корректность можно будет по CRC проверить.
...
Рейтинг: 0 / 0
О применимость языков
    #39041771
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AdxУ меня этот же код ...
Объяснимо: у меня VS2010 у тебя вроде 2013 (если не путаю). .Net соответственно 4.0 и 4.5.
Значит MS не сидит сложа руки, допиливает и что приятно - в нужную сторону :)
AdxВсе, прекращаю оффтопить )
Присоединяюсь
...
Рейтинг: 0 / 0
О применимость языков
    #39041838
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerПоэтому по мощи и универсальности он уступает автоматуУниверсальность автомата заканчивается на "личное оружие ближнего боя".
Тоже констатация факта, но обе - бессмысленные.
...
Рейтинг: 0 / 0
О применимость языков
    #39041846
Зимаргл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonКоллеги.

Я думаю что нам стоит пока отложить замер "ошибок страниц".
Я имею в виду в отношении бенчмаркок С++/Java/dNet/Python. Бох весть еще какие цифры
у нас полезут в Linux окружении. Это путает карты.
Это отдельный тест. В Линухе существенное отличие на переключение контекста и мютексы всякие. На вычислительном тесте это не видно.


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

Можно взять создание 100 экз какого нибудь одинакового окна с кнопочками. Или еще какого объекта, который в иерархии классов фреймворка имеет много предков.
...
Рейтинг: 0 / 0
О применимость языков
    #39041858
Adx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Adx
Гость
Зимаргл,

Сравнивать визуальные оболочки, написанные на разных системах/языках, абсурдно. Я под С++ и C# напишу десяток разных интерфейсов с разными характеристиками. Сравнивать нужно одинаковый код, насколько это возможно, конечно. И уж визуальные библиотеки подходят для этого меньше всего. А то давайте тогда сравним MS Paint и Adobe Photoshop по памяти и скорости загрузки.
...
Рейтинг: 0 / 0
О применимость языков
    #39041868
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В данном топике мы обсуждали принципиальную возможность описать и закодить
любой алгоритм на языке-платформере в т.ч. и тайм-критичные алгоритмы. Типа
DOSBox, или игры Doom.

Гонять бенчмарки для этого необязательно ИМХО но некоторые мемберы имеют
свои сомнения и опасения.

Кстати нам неизбежно придётся коснуться таких аспектов как пропускная способность
и скорость отклика.
...
Рейтинг: 0 / 0
О применимость языков
    #39041885
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗимарглDima T,
нужно больше использования фреймворка, а не простых операций.
Согласен. Тест синтетический. Но он показывает умение конкретного фрэймворка подстроиться под написаный на нем код.

Но это второстепенно, даже третьестепенно. Главная задача фрэймворка увязать возможности нижнего уровня (С, Асм) с простотой написания кода. Яркий пример FoxPro, на котором я и пишу восновном, подобный тест даже не буду выкладывать, проиграет по всем параметрам. Но на фоксе можно легко делать такие вещи, которые вызовут глубокую зависть конкурентов. Недавно демонстрировали мою поделку одной достаточно большой компании, сбежался весь ИТ-отдел, смотрел и утверждал что такое невозможно. Вроде элементарные вещи показывали когда по слову " О брикос" находит все "Абрикосы". Любой гугл это умеет. А это просто помесь фокса и Си в правильных пропорциях :)
...
Рейтинг: 0 / 0
О применимость языков
    #39041888
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если я введу "Абрамс" - найдет "Абрикос" ? :)
...
Рейтинг: 0 / 0
О применимость языков
    #39041893
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА если я введу "Абрамс" - найдет "Абрикос" ? :)
Нет. Количество ошибок ограничено. Читай про расстояние Левенштейна. Хотя ты и так знаешь не читая :)
Следующий шаг - использовать релевантность.

ЗЫ Правда получилось что "желтый" ~= "белый"
...
Рейтинг: 0 / 0
О применимость языков
    #39041905
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TВроде элементарные вещи показывали когда по слову " О брикос" находит все "Абрикосы".
"Вспомним молодость" ...
В середине 90-х в одной из организаций в шкафах "бухгалтеров" была тьма толстых подшивок с данными
по основным фондам /газопроводы/.
Так как данных была "тьма", то ни кто даже помыслить не смел, чтобы все это "богатство" можно было
ввести в компьютер и тем более /о чудо/ он будет давать верные цифры.
Но один амбициозный /был грех/ молодой парень сказал - "Хотите через 2 месяца у вас весь архив будет
в компьютере и получать все желаемые вам отчеты в любых разрезах".
Так как организация видела мои предыдущие работы, то они согласились на подписание договора ...

А теперь самое интересное.
Нужно было ввести не мало символьных данных /наименование улиц, тип, длина, ... труб ... ...
Что сделал.
Разработал на Foxpro алгоритм, который "на лету" пополнял базу введенных слов ...
Так вот для ввода строки выше мне достаточно было ввести "ррбтл на Fpo агтм ктрй "на лту" плнл бзу ввх сов ...".
Остальное на автомате находилось в базе слов и разворачивал в фразу
"Разработал на Foxpro алгоритм, который "на лету" пополнял базу введенных слов ..."
Были и еще трюки ...

PS: "Теперь вы понимаете как мне в таких условиях легко работалось".
Через два месяца заказчик и исполнитель поучили какдый то чего хотел ...
...
Рейтинг: 0 / 0
25 сообщений из 296, страница 10 из 12
Форумы / Программирование [игнор отключен] [закрыт для гостей] / О применимость языков
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]