|
|
|
О применимость языков
|
|||
|---|---|---|---|
|
#18+
SashaMercuryНедавно встретил у Лафоре, но не уверен, актуальна ли эта фраза: Robert Lafore OOP in C++ fourth editionOf the object-oriented programming languages, C++ is by far the most widely used. Java, a recent addition to the field of OO languages, lacks certain features-such as pointer, templates, and multiply inheritance - that make it less powerfull and versatile than C++. Ерунда. Написано о том, что в Java нет тех вещей, которые специально оттуда убрали. Лафоре такой подход не нравится - его право. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2015, 10:36 |
|
||
|
О применимость языков
|
|||
|---|---|---|---|
|
#18+
Каким числом датируется это сообщение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2015, 10:39 |
|
||
|
О применимость языков
|
|||
|---|---|---|---|
|
#18+
mayton, В общем скачал новую платформу VS2015 и пересмотрел Scimark2. Почти ничего не поменялось - только Си ушел в еще более дальний отрыв. ~1.5 раза быстрее дНета4 и Явы7. Ну и немного соврал про аутсайдера - это Дельфи7 с троекратным отрывом =) Кто захочет - пересоберет на новой Дельфе сам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2015, 10:51 |
|
||
|
О применимость языков
|
|||
|---|---|---|---|
|
#18+
Dima TВключил комп. Запускаю MSSQL Managment Studio 2012 (.Net 4.0) Процесс ssms.exe: Хрустит винтом секунд 7-8, Ошибок страниц 38 000. Закрываю. Запускаю снова, 1-2 секунды, ошибок страниц 39 000, винта не слышно. А Вам не приходило в голову, что Managment Studio грузит сборки не просто так? Что они нужны? Что там полезный код и данные? И что там при старте происходит множество вещей. Не понимаю, почему долгая загрузка сама по себе - это плохо. По ошибкам. Вам (скорее Зимарглу ) не кажется, что большое количество ошибок связано с отсутствие необходимого количества физической памяти? Можно сколько угодно ругать современный софт за высокие требования к объему ОЗУ, но ничего не изменится. Managment Studio вполне ложится в эту концепцию. Можно еще поругать сайты за требования к скорости интернета и проца. Опять же они объем памяти жрут своими многомегабайтными страницами. Речь идет о том, как быть, если Вам нужно написать небольшое и быстрое приложение, не отягощенное десятками визуальных библиотек и разнообразных ресурсов. Например, Вы пишите сервис, которому интерфейс не нужен в принципе. Или консольное приложение. Я понимаю применимость именно в таком смысле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2015, 11:08 |
|
||
|
О применимость языков
|
|||
|---|---|---|---|
|
#18+
Зимаргл, Где Вы берете исходники под эти языки? Дайте ссылку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2015, 11:11 |
|
||
|
О применимость языков
|
|||
|---|---|---|---|
|
#18+
Зимаргл, и напишите, пожалуйста, характеристики машины, на которой Вы все это тестировали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2015, 11:13 |
|
||
|
О применимость языков
|
|||
|---|---|---|---|
|
#18+
Думаю что явление "прогрева двигателя" специфично не только для сред платформеров. Того-же эффекта можно достигать в Oracle, запрашивая индексный доступ к крупной таблице. Первый пуск будет всегд медленным. В сетях TCP/IP я также наблюдал явление когда "первый" IP пакет в цепочке пробивает себе дорогу ощутимо медленно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2015, 11:18 |
|
||
|
О применимость языков
|
|||
|---|---|---|---|
|
#18+
Зимарглmayton, В общем скачал новую платформу VS2015 и пересмотрел Scimark2. Почти ничего не поменялось - только Си ушел в еще более дальний отрыв. ~1.5 раза быстрее дНета4 и Явы7. Ну и немного соврал про аутсайдера - это Дельфи7 с троекратным отрывом =) Кто захочет - пересоберет на новой Дельфе сам. Зимаргл. А есть данные по .Net и Java7 в сравнении? Можешь табличку сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2015, 11:26 |
|
||
|
О применимость языков
|
|||
|---|---|---|---|
|
#18+
mayton, кэш есть даже у процессора. Аж три уровня. Да еще какие-то данные могут быть сохранены в регистрах ... ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2015, 11:28 |
|
||
|
О применимость языков
|
|||
|---|---|---|---|
|
#18+
Да. Ресурсы можно рассматривать как пирамиду РОН/L1-L2/Memory/PagingFile. Или еще играя в пасьянс с AFFINITY тоже получать различные конфигурации для мультипоточности. Интересно как наш летчик решает проблемы отклика для такой пирамидальной архитектуры? Или у него нет пирамидки ресурсов. Мдя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2015, 11:45 |
|
||
|
О применимость языков
|
|||
|---|---|---|---|
|
#18+
AdxDima TВключил комп. Запускаю MSSQL Managment Studio 2012 (.Net 4.0) Процесс ssms.exe: Хрустит винтом секунд 7-8, Ошибок страниц 38 000. Закрываю. Запускаю снова, 1-2 секунды, ошибок страниц 39 000, винта не слышно. А Вам не приходило в голову, что Managment Studio грузит сборки не просто так? Что они нужны? Что там полезный код и данные? И что там при старте происходит множество вещей. Не понимаю, почему долгая загрузка сама по себе - это плохо. Это к чему вообще сказано? Мысли вслух? Разделяю :) Вообще-то я это Зимарглу писал чтобы показать ошибочность его предположения что загрузка кода с HDD узкое место. AdxПо ошибкам. Вам (скорее Зимарглу ) не кажется, что большое количество ошибок связано с отсутствие необходимого количества физической памяти? Подучи матчасть как виндовс устроен. Хорошая книжка Джеффри РИХТЕР "Windows для профессионалов", там все разжевано доступным языком. Вкратце: загрузка DLL в память процесса происходит маппингом файла, т.е. DLL файл выступает файлом подкачки для определенного куска адресного пространства процесса. При этом файл не читается заранее. При обращении в это место (неважно код там или данные), если реально страница памяти не существует - менеджер памяти перехватывает исключение и подгружает нужный кусок (страницу) из файла, это и показывает счетчик "ошибок страниц" в диспетчере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2015, 11:59 |
|
||
|
О применимость языков
|
|||
|---|---|---|---|
|
#18+
Dima TПодучи матчасть как виндовс устроен. Хорошая книжка Джеффри РИХТЕР "Windows для профессионалов", там все разжевано доступным языком. Вкратце: загрузка DLL в память процесса происходит маппингом файла, т.е. DLL файл выступает файлом подкачки для определенного куска адресного пространства процесса. При этом файл не читается заранее. При обращении в это место (неважно код там или данные), если реально страница памяти не существует - менеджер памяти перехватывает исключение и подгружает нужный кусок (страницу) из файла, это и показывает счетчик "ошибок страниц" в диспетчере. Ошибки страниц происходят тогда, когда процесс обращается к странице памяти, которая отсутствует в рабочем наборе. Для устранения некоторых ошибок страниц требуется получить содержимое страницы с диска, а другие можно устранить без обращения к диску . Справка Microsoft по TM в Windows 7. (с) Обращаю внимание на подчеркнутое. По DLL. Сборка может быть загружена статически и динамически. Про динамическую загрузку сборок рассказывать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2015, 12:12 |
|
||
|
О применимость языков
|
|||
|---|---|---|---|
|
#18+
Adx Ошибки страниц происходят тогда, когда процесс обращается к странице памяти, которая отсутствует в рабочем наборе. Для устранения некоторых ошибок страниц требуется получить содержимое страницы с диска, а другие можно устранить без обращения к диску . Справка Microsoft по TM в Windows 7. (с) Это не противоречит тому что я написал. Читай Рихтера если интересно. AdxОбращаю внимание на подчеркнутое. По DLL. Сборка может быть загружена статически и динамически. Про динамическую загрузку сборок рассказывать? Давай, только это к обсуждаемому вопросу не имеет отношения. Я под DLL подразумевал код самой библиотеки .Net, а не сборки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2015, 12:30 |
|
||
|
О применимость языков
|
|||
|---|---|---|---|
|
#18+
maytonЗимарглmayton, В общем скачал новую платформу VS2015 и пересмотрел Scimark2. Почти ничего не поменялось - только Си ушел в еще более дальний отрыв. ~1.5 раза быстрее дНета4 и Явы7. Ну и немного соврал про аутсайдера - это Дельфи7 с троекратным отрывом =) Кто захочет - пересоберет на новой Дельфе сам. Зимаргл. А есть данные по .Net и Java7 в сравнении? Можешь табличку сделать? https://code.google.com/archive/p/scimark-delphi/ Там есть готовые .exe под шарп, си и дельфи. http://math.nist.gov/scimark2/ - тут исходники под Си и Яву. javac *.java затем классы сложить в jnt\scimark2\ запускать java jnt.scimark2.commandline Dima TAdxпропущено... А Вам не приходило в голову, что Managment Studio грузит сборки не просто так? Что они нужны? Что там полезный код и данные? И что там при старте происходит множество вещей. Не понимаю, почему долгая загрузка сама по себе - это плохо. Это к чему вообще сказано? Мысли вслух? Разделяю :) Вообще-то я это Зимарглу писал чтобы показать ошибочность его предположения что загрузка кода с HDD узкое место. AdxПо ошибкам. Вам (скорее Зимарглу ) не кажется, что большое количество ошибок связано с отсутствие необходимого количества физической памяти? Подучи матчасть как виндовс устроен. Хорошая книжка Джеффри РИХТЕР "Windows для профессионалов", там все разжевано доступным языком. Вкратце: загрузка DLL в память процесса происходит маппингом файла, т.е. DLL файл выступает файлом подкачки для определенного куска адресного пространства процесса. При этом файл не читается заранее. При обращении в это место (неважно код там или данные), если реально страница памяти не существует - менеджер памяти перехватывает исключение и подгружает нужный кусок (страницу) из файла, это и показывает счетчик "ошибок страниц" в диспетчере. Именно так. Следовательно, чем больше фремворк, тем больше своппинга. Попал в кэш - хорошо, но чтение из дискового кэша тоже недешевая операция. Если использовать предзагрузку всего фремворка и пометить невыгружаемым - уберется сваппинг, зато долгая загрузка и сожрется немеряно памяти, и с количеством приложений память все= может кончиться. Я не видел, чтобы какая то настольная система так делала, хотя на серверной стороне вполне возможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2015, 12:35 |
|
||
|
О применимость языков
|
|||
|---|---|---|---|
|
#18+
Не проверял .net native компиляцию, т.к. нет win10 под рукой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2015, 12:36 |
|
||
|
О применимость языков
|
|||
|---|---|---|---|
|
#18+
Зимаргл https://code.google.com/archive/p/scimark-delphi/ Там есть готовые .exe под шарп, си и дельфи. http://math.nist.gov/scimark2/ - тут исходники под Си и Яву. javac *.java затем классы сложить в jnt\scimark2\ запускать java jnt.scimark2.commandline Благодарю но не сейчас. Щас есть чем заниматься for fun. У меня на проекте application съедает со старта 400Мб char[]. Надо разобраться что там лежит. Подозреваю что java.lang.String что в свою очередь - какие-то последствия засилья Persistence с PGSQL. Вобщем надо разбираться. Процедурально я уже знаю ЧТО делать но пока не знаю как. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2015, 12:58 |
|
||
|
О применимость языков
|
|||
|---|---|---|---|
|
#18+
Dima TЭто не противоречит тому что я написал. Читай Рихтера если интересно. Противоречит. Не все ошибки связаны с диском. Вы путаете разные понятия. AdxОбращаю внимание на подчеркнутое. По DLL. Сборка может быть загружена статически и динамически. Про динамическую загрузку сборок рассказывать? Давай, только это к обсуждаемому вопросу не имеет отношения. Я под DLL подразумевал код самой библиотеки .Net, а не сборки.[/quot] Библиотеки .Net - это сборки, это раз. То, что они называются DLL - это ничего не значит. Важен механизм работы. И два, у Вас идут рассуждения о Managment Studio, а теперь Вы говорите об основных библиотеках .Net. Напишите консольное приложение "Hello world" и отключите ВСЕ системные сборки .Net. Вы получите приложение размером в 5 кб Оно подгрузит библиотеку mscoree размером в 300кб. Та в свою очередь будет ссылаться на базовые библиотеки Windows (типа kernel32, user32) Внимание вопрос. Сколько такое приложение считает с диска при запуске? Если не знать как работает JVM и .Net, а читать книжки по общим принципам, а остальное додумывать, ничего хорошего не выйдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2015, 13:31 |
|
||
|
О применимость языков
|
|||
|---|---|---|---|
|
#18+
ЗимарглТам есть готовые .exe под шарп, си и дельфи. Готовые exe - не интересно. Нужно смотреть, как написан код, с какими параметрами скомпилирован. Оптимизация и правильные ключи могут и в полтора раза скорость поднять. В этом смысле тестовая задача интереснее. Меньше кода, проще посмотреть узкие места. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2015, 13:38 |
|
||
|
О применимость языков
|
|||
|---|---|---|---|
|
#18+
ЗимарглИменно так. Следовательно, чем больше фремворк, тем больше своппинга. Попал в кэш - хорошо, но чтение из дискового кэша тоже недешевая операция. Не совсем. Во-первых читается не все, а только то что надо. Во-вторых если оперативной памяти хватает, то повторного чтения не надо. Правильнее сказать "чем больше разных объектов фремворка использовано, тем больше своппинга". Например смотрим тот же Managment Studio загрузился до окошка выбора сервера - занял 54 Мб. Запустил свою поделку консольную на C# - 1,4 Мб. Думаю все эти проблемы решаемы. Просто надо решать. Например FireFox 4-5 лет назад грузился чуть ли не минуту, хоть и написан на C/C++. Опять же все зависит о задачи. Насколько критично сэкономить 10-100 Мб ОЗУ, фремворк это ж не только занимание памяти, но и облегчение и ускорение разработки. Например поиск и удаление процесса с заданным именем код на С Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. Код на C# Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Согласись что второй вариант заметно компактнее. ЗимарглЕсли использовать предзагрузку всего фремворка и пометить невыгружаемым - уберется сваппинг, зато долгая загрузка и сожрется немеряно памяти, и с количеством приложений память все= может кончиться. Я не видел, чтобы какая то настольная система так делала, хотя на серверной стороне вполне возможно. Не проверял .net native компиляцию, т.к. нет win10 под рукой. Я пока до этого не дошел в шарпе, ничего не скажу. Пока "Hello world" осваиваю :) По поводу предварительных компиляций я так понял что это есть как минимум начиная с 4.0 которая под XP работает, но там есть своя специфика: компилить надо на компе где будет работать, еще кое-какие ньюансы надо учесть. Есть вместе с фрэймворком NGEN.EXE , который этой компиляцией занимается если попросить. Глубоко не вникал, рано мне еще, читал в книге "Дж. Рихтер CLR via C#. Программирование на платформе Microsoft .NET Framework 4.0 на языке C#" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2015, 13:41 |
|
||
|
О применимость языков
|
|||
|---|---|---|---|
|
#18+
Dima TСогласись что второй вариант заметно компактнее. ... Глубоко не вникал, ... А так же использует кучу классов из сборок, которые мы не собираемся грузить из за экономии времени загрузки. Нет уж, только хардкор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2015, 13:50 |
|
||
|
О применимость языков
|
|||
|---|---|---|---|
|
#18+
Зимаргл Следовательно, чем больше фремворк, тем больше своппинга. Если использовать предзагрузку всего фремворка и пометить невыгружаемым - уберется сваппинг, зато долгая загрузка и сожрется немеряно памяти, и с количеством приложений память все= может кончиться. Я не видел, чтобы какая то настольная система так делала, хотя на серверной стороне вполне возможно. Зачем Вам ВЕСЬ фреймворк? Первое предложение неверно в корне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2015, 13:57 |
|
||
|
О применимость языков
|
|||
|---|---|---|---|
|
#18+
Adx, я тебя понять не могу к чему ты все адресованное мне написал. У нас с Зимарглом было обсуждение проблемы подкачки с диска (заметь мы друг-друга поняли), а тут ты со своими постами в какую-то другую сторону, я честно не понимаю к чему ты это все написал. Давай проще, начни с конца: пиши сразу к чему ты ведешь, что доказываешь, что я по твоему не понимаю. А я тебе отвечу так оно или нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2015, 14:03 |
|
||
|
О применимость языков
|
|||
|---|---|---|---|
|
#18+
Dima TЗапустил свою поделку консольную на C# - 1,4 Мб. Это очень много. Ищите, где лишний код ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2015, 14:04 |
|
||
|
О применимость языков
|
|||
|---|---|---|---|
|
#18+
AdxЗимарглТам есть готовые .exe под шарп, си и дельфи. Готовые exe - не интересно. Нужно смотреть, как написан код, с какими параметрами скомпилирован. Оптимизация и правильные ключи могут и в полтора раза скорость поднять. В этом смысле тестовая задача интереснее. Меньше кода, проще посмотреть узкие места. Там есть исходный код. Бери, компилируй с разными ключами. Смотри код. Я собственно, потому результаты и не стал выкладывать, что у каждого они будут немного свои. Dima T.... Запустил свою поделку консольную на C# - 1,4 Мб. ... Опять же все зависит о задачи. Насколько критично сэкономить 10-100 Мб ОЗУ, фремворк это ж не только занимание памяти, но и облегчение и ускорение разработки. ... Ты не тот скорее всего параметр смотришь. Минимальный футпринт дНет приложения занимает примерно 10Мб в памяти. Я писал выше, что смотреть в диспетчере задач. К примеру тот же Скимарк занимает 3Мб в Си варианте и 11Мб в С#. Насколько критично 50Мб Озу на процесс вебсервера можешь посмотреть в статье про multitenant JVM выше по топику. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2015, 14:11 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39041362&tid=1340912]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
74ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 483ms |

| 0 / 0 |
