D
D
dollar2019-12-22 06:09:49
IDE
dollar, 2019-12-22 06:09:49

In what language and using what technologies, IDE is it better to write programs for Windows that would take up a minimum of RAM?

Такая программа должна иметь возможность работать с файлами, отслеживать работу других процессов (обращение к диску, к сети), иметь скромный GUI, доступ к сети. В общем, ничего необычного. То есть это не какая-нибудь игра, а простая системная утилита для какой-то специфической функции или отслеживания чего-то, которая незаметно сидит в трее, или вообще работает как служба, или даже является консольной. Главное условие - чтобы занимала минимум оперативной памяти. Без фанатизма, конечно. То есть разницы между 1.9Мб и 2.1Мб нет никакой, а вот разница между 100Кб и 10Мб существенная.
То есть нужен какой-то баланс между удобством и минимализмом, но с перекосом в сторону минимализма. Писать самую маленькую программу в мире не нужно (62 байта). Запихивать 3D игру в 1Кб тоже не нужно (mars). Просто не хотелось бы пихать в билд кучу всего подряд на все случаи жизни, что там будет лежать мертвым грузом и не использоваться (или, что ещё хуже, работать вхолостую).
К примеру, какой примерно размер билда может быть у утилиты, которая просто отслеживает двойной щелчок мыши во всех запущенных приложениях? GUI - просто кнопка "reset" и счетчик нажатий, без красивого оформления, с упором на минимализм. По моим прикидкам даже 100Кб будет много, хотя тянуть с собой стандартную библиотеку не зазорно, но всё же слишком жирно для такой простой задачи. А в оперативной памяти, соответственно, какой-нибудь полноценный сборщик мусора здесь тоже будет явно лишним.
Подразумевается, что таких мелких программ может одновременно работать очень много. К примеру, 20 штук (под разные хотелки). И если каждая будет под 100 Мб, то это как-то не круто. Вспоминаются старые добрые времена, когда всем за глаза хватало 640Кб...

Answer the question

In order to leave comments, you need to log in

8 answer(s)
H
Hemul GM, 2019-12-22
@dollar

Если хотите минимум требований по ОЗУ попробуйте Delphi (RAD Studio). Ни каких фреймворков и сторонних библиотек. Единственный, самодостаточный exe, использование памяти которого контролируете вы сами.
Пример приложения по-дефолту. Имеется возможность и уменьшить потребление, исключив некоторые элементы или изменив настройки компилятора, добавив директивы в проект.

I
index0h, 2019-12-22
@index0h

Под винду берите c#. То, сколько будет потреблять ресурсов - полностью на вашей совести.

Владимир Коротенко, 2019-12-22
@firedragon

C#,VB, (NET 3 ) рантайм уже вшит во все операционки.
Если хочется экстремально малого объема используйте mfc / QT или для совсем маленьких WinAPI + WTL.
Сразу предупреждаю сам код не занимает место, основное это ресурсы.
Забавно что упомянули клики, писал такое
https://github.com/vkorotenko/mouse

АртемЪ, 2019-12-22
@Jump Куратор тега Windows

С#, С как правило.
Все зависит от того что будете использовать в написании программ.
От языка, технологий это мало зависит, от IDE вообще не зависит.

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

S
Saboteur, 2019-12-22
@saboteur_kiev Куратор тега Windows

Писать самую маленькую программу в мире не нужно (62 байта).

Что-то слишком много как для самой маленькой программы в мире. Есть же гораздо меньше.
К примеру, какой примерно размер билда может быть у утилиты, которая просто отслеживает двойной щелчок мыши во всех запущенных приложениях?
GUI - просто кнопка "reset" и счетчик нажатий, без красивого оформления, с упором на минимализм. По моим прикидкам даже 100Кб будет много, хотя тянуть с собой стандартную библиотеку не зазорно, но всё же слишком жирно для такой простой задачи.
Зависит от того, что за операционная система, и перехватывает ли приложение доступ к мышке. Вы считаете размер файла на диске, или сколько программа будет в памяти занимать, с учетом подгрузки динамических стандартных библиотек?
Так напишите одну программу с 20-ю хотелками и все.
В старые добрые времена 640 кб никому не хватало. Вдобавок в те времена, windows была совсем не многозадачной и не умела все то, что сейчас происходит. Даже банально работа с графикой - есть разница между 320x200x256 и 1920x1024x65536.
По языкам - не суть важно. На самом деле на каждом языке можно писать с умом и оптимизацией. Но для ваших задач - нет смысла сейчас выбирать специализацию. Ваши программы очень простые. Попробуйте написать их на c++, на C# и на java/kotlin и посмотрите потом, какой язык вам больше подходит. Не бросайте все три после первой же программы. Попробуйте все-таки развиваться некоторое время во всех трех. Так поймете больше разных концепций, и собственно почему инструмент выбирают под задачу.

#
#, 2019-12-22
@mindtester Куратор тега Windows

the most compact and fastest code - assembler
the most compact "IDE" - notepad. although this is not the limit. there are console editors. even under Windows,
you already decide on the Wishlist. under Windows there is no tool better than Visual Studio (and the modern installer perfectly selects the Wishlist). if your computer is too weak - a very interesting Visual Studo Code tool (it just uses node.js and litters the system with heaps of npm caches, even for its own functioning), but probably has long been the record holder in the number of supported languages ​​​​(but plugins are usually npm modules )
ps as far as I know, this is the latest version of the official MS assembler - https://www.masm32.com/ there is even some kind of IDE of its own,
but masm did not converge like a wedge -https://www.nasm.us/
and for nasm there is even a very lightweight ide, a link to Google, because it also crashes with habr - https://www.google.com/search?client=firefox- bd&e...
.. and in general, assemblers, like dogs not cut.. what are the deep differences, except for macro libraries, which is logical, as a rule, I don’t even understand))
pps Visual Studio Community edition is absolutely free, after 30 days Trila, if I'm not mistaken, you just need to register. a license (quite cheap) is required to publish applications in the MS "store". I have had it for a long time, so what to do for those who don’t have it - I won’t tell
Visual Studo Code, as well as the vast majority of plugins for it, absolutely free

R
res2001, 2019-12-22
@res2001

To implement the required functionality, you can not use any libraries at all - everything is provided by the OS API (for GUI niks - it is not included in the API provided by the kernel, but this does not matter).
The smallest exe size and memory consumption can be obtained in C/C++. C is slightly more compact and faster.
Writing on a bare OS API is quite long and laborious, and the code will be as far from cross-platform as possible (although this is not discussed in the question). But it will be a very good experience and it is quite interesting on small projects.
Therefore, if there are still some deadlines, then you should use libraries that speed up development. Of course, libraries are a layer between the OS API and the application, and this increases both the size of the executable file and the amount of memory consumed. But there is always a compromise to be made.
For GUI under Windows, you can use WTL - this is a compact OOP add-on for Windows GUI, developed by Microsoft, provided in source codes (at least when I last dealt with it). WTL is for any C++. Enough and other libraries for the GUI.
On account of the IDE - you can use any - it does not affect the amount of memory consumed by the application.
I'm not talking about assembler here, because it makes no sense to dive into this level without very good reasons. Using assembler will further increase the development time.

X
xmoonlight, 2019-12-22
@xmoonlight

Delphi7 - 7kb console exe file.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question