В шоке от напряжности программирования на C++ - страница 3

 
Fduch >>:

Память нормально выделяется. Хотя у меня такая ошибка раньше возникала, в другом проекте. Не подскажете, из-за чего такое может происходить или как от этого избавиться?

Проблема может возникать из-за неправильного sizeof (особенно если он расчитывается динамически и вдруг оказывается равным нулю, судя по всему у Вас есть некоторая проблема с пониманием указателей, поэтому это может происходить), а так вообще на каждой системе причины могут быть разными - например, memoryleaks в других частях проекта.

 

Автор, тебе нельзя программировать на С++. Точнее можно, наверное, но после прочтения большой и хорошей книги. А лучше двух: по С++ и что-нибудь по методам самого программирования (работа с памятью, стандартные алгоритмы, подходы и тыпы) :) Т.е. кардинального повышения образования.


А то что ты пытаешься делать - это только себе во вред. Все равно, что обезьяну за руль автомобиля посадить. Тебе же хуже будет.


Зачем тебе вообще С++?

 
MuruFigi >>:

А то что ты пытаешься делать - это только себе во вред. Все равно, что обезьяну за руль автомобиля посадить. Тебе же хуже будет.

Зачем тебе вообще С++?

А что такого настолько жуткого я пытаюсь делать?) Обычный класс, который заполняется данными из буффера, содержащего скачанную веб-страницу. Интересно, как это может меня покалечить?) А зачем.. Хотя бы для того, чтобы доделать проект, выложенный в последнем посте первой страницы темы.

 
Fduch >>:

А что такого настолько жуткого я пытаюсь делать?) Обычный класс, который заполняется данными из буффера, содержащего скачанную веб-страницу. Интересно, как это может меня покалечить?) А зачем.. Хотя бы для того, чтобы доделать проект, выложенный в последнем посте первой страницы темы.

Все нормально, он пытается тебя на шарп перетащить -- не поддавайся ;)

 
TheXpert >>:

Все нормально, он пытается тебя на шарп перетащить -- не поддавайся ;)

Верняк, Фдюч! Не поддавайся и не сдавайся!

 

да уж. на шарпе таких проблем бы не возникло =)


Fduch, Вам бы посоветовал пользоваться регулярными выражениями. Этот подход более корректный + меньше кода + быстрее работает.

Вижу у вас поддержку CLR, так что можете использовать класс System::Text::RegularExpressions::Regex

 

Смотрю в коде он использует функции сишные для работы со строками и памятью да с указателями ещё. Не понятно зачем ему вообще .NET тогда. Без дотнет будет быстрее работать и памяти меньше кушать, учитывая что это не большое приложение, а утилита, которая не 20 мега памяти должна отжирать а максимум 2 мега если написать на C++ и используя Win32 API.

 
elritmo >>:

Смотрю в коде он использует функции сишные для работы со строками и памятью да с указателями ещё. Не понятно зачем ему вообще .NET тогда. Без дотнет будет быстрее работать и памяти меньше кушать, учитывая что это не большое приложение, а утилита, которая не 20 мега памяти должна отжирать а максимум 2 мега если написать на C++ и используя Win32 API.

Вот этого момента я тоже не понял. С приведением типов могут быть траблы.

Обычно обхожусь или тем или другим. Исключение составляет прослойка между mql-скриптом и .NET-библиотекой.


PS. На самом деле .NET приложение не отжирает, а "резервирует место". И при надобности отдает. Можно насильно урезать используемую память, где то даже функция в винапи была. по-моему даже эта: SetProcessWorkingSetSize. Хотя памяти будет все равно больше занимать. не спорю.

 

Дот нет резервирует место в куче мегов так 15 скажем при старте приложения и всего 1-5 процентов от всей выделенной испольузется приложением-утилотой например. Отдаётся конечно остальная память другим приложениям, работающим паралельно и при этом сбрасывает в файл подкачки память-страницы выделенную виртуальной машиной из этих 15 метров, которые не испольуются активно приложением, чтобы освободить место в физической для других приложений. А работа с файлом подкачки тормозит работу. Проверить можно запустив несколько дот нет приложений посмотреть как упадёт производительность. Хотя я могу заблуждаться - не изучал этот вопрос подробно. Рихтера когда-то читал про регионы и страницы памяти.

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

 
elritmo >>:

Дот нет резервирует место в куче мегов так 15 скажем при старте приложения и всего 1-5 процентов от всей выделенной испольузется приложением-утилотой например. Отдаётся конечно остальная память другим приложениям, работающим паралельно и при этом сбрасывает в файл подкачки память-страницы выделенную виртуальной машиной из этих 15 метров, которые не испольуются активно приложением, чтобы освободить место в физической для других приложений. А работа с файлом подкачки тормозит работу. Проверить можно запустив несколько дот нет приложений посмотреть как упадёт производительность. Хотя я могу заблуждаться - не изучал этот вопрос подробно. Рихтера когда-то читал про регионы и страницы памяти.

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

А может просто памяти купить и не мучиться? (файл подкачки)

Причина обращения: