Околоотладочная тема и выпуск пара
|
|
haav | Дата: Пятница, 15.04.2022, 12:51 | Сообщение # 106 |
![haav](/avatar/00/5416-572652.jpg) Генералиссимус
Группа: Администраторы
Сообщений: 1363
Статус: Offline
| Цитата laser ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) И где скачать текущую версию FB для мака (Intel и ARM)? Если это неофициальная и не поддерживаемая версия, можно не считать. PB тоже есть для амиги и PowerPC проца, но больше не поддерживается и их не считаю.
Так не считай , кто же тебе заставляет? Людям-то на это пофиалетово. Они не ждут сборок или оф. релизов , просто берут и портируют FB туда , где они хотят его видеть и используют как захотят.
Цитата laser ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) Где скачать сборку (IDE, компиль, отладчик и др.) под ARM линь? У тебя на форуме тока сборки для винды. Опять все по принципу - сделай сам? В PB все собрано. В лине достаточно распаковать архив куда-то и установить требуемые пакеты.
Стащил и установил компиль с оф. сайта , установил geany , gdb наверное уже в системе. Остальное необходимое (какие-то библиотеки) поставил так же из терминала.
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
zamabuvaraeu | Дата: Пятница, 15.04.2022, 14:16 | Сообщение # 107 |
Подполковник
Группа: Друзья
Сообщений: 148
Статус: Offline
| Цитата laser ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) То есть предлагаешь останавливать поток до приема данных? Чем это лучше блокирующих сокетов? Функция MsgWaitForMultipleObjectsEx не блокирует GUI, виндовые сообщения продолжают обрабатываться. Без всяких проверок по таймеру.
Цитата laser ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) Надо 1000 соединений, создашь 1000 потоков? Браво! Верх оптимизации! Не надо, всё работает в одном потоке.
Цитата laser ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) Тут ты ошибаешься. Не все процессорное время в ядре можно посчитать по техническим причинам. Учитывается в основном юзермодное. Во‐первых, в диспетчере задач есть галочка «Показать время ядра». Так это это будет видно. Во-вторых, любая активность процессора раз в N наносекунд сразу же нагрузит процессор с повышением его температуры и гудением вентилятора.
Цитата laser ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) тока зачем? Чтобы сэкономить 0.0001% процессорного времени? Смысл? Действительно, зачем делать правильно, когда можно делать тяп‐ляп.
Цитата laser ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) Прога повиснет в ReceiveNetworkData до приема заданного числа байт. Загрузка проца нулевая. Ну вот видите, эта функция блокирует GUI. Поэтому вы или запускаете отдельный поток, или переходите в неблокирующий режим. а неблокирующий режим каждые 100 миллисекунд вхолостую дёргает диспетчер потоков в винде. Данных нет, но программа всё равно 10 раз в секунду занимается бессмысленной работой, которую можно избежать.
Цитата laser ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) А вот с этим не соглашусь. Вероятно проверки есть в ядре. Ты не можешь на 100% это отрицать или видел код функции MsgWaitForMultipleObjectsEx и точно знаешь как она работает? Любая Wait‐функция в конечном итоге останавливает поток. То есть поток удаляется из очереди запланированных к работе, менеджер потоков не тратит на него время и ресурсы.
|
|
| |
laser | Дата: Пятница, 15.04.2022, 21:05 | Сообщение # 108 |
Лейтенант
Группа: Пользователи
Сообщений: 57
Статус: Offline
| Цитата haav ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) Людям-то на это пофиалетово. Они не ждут сборок или оф. релизов , просто берут и портируют FB туда , где они хотят его видеть и используют как захотят. Скажи честно скока ты знаешь людей юзающих FB способных на такое? На калибри был запущен простейший код, или проект с GUI, сетью, БД, и др.? В первом случае, практического смысла порта нет.
Цитата haav ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) Стащил и установил компиль с оф. сайта , установил geany , gdb наверное уже в системе. Это нерациональный и трудозатратный метод. Сгодится тока если нужно раз собрать приложение. На постоянно совершенно не подходит.
Цитата zamabuvaraeu ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) Во‐первых, в диспетчере задач есть галочка «Показать время ядра». Нету такого. Стандартный диспетчер? ОС? Ты на 100% уверен что учитывается все время, включая прерывания? Скорее всего тока время с низким IRQL когда код ядра выполняется в контексте потока приложения.
Цитата zamabuvaraeu ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) Во-вторых, любая активность процессора раз в N наносекунд сразу же нагрузит процессор Я же писал что в PB (читай юзермод) проверка наличия данных занимает меньше микросекунды. В ядре понадобится еще меньше времени. Оттого проц не сильно грузит.
Цитата zamabuvaraeu ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) Действительно, зачем делать правильно, когда можно делать тяп‐ляп. Ты наверно не видел кода написанного по принципу отъе**сь. Вот то треш полный. А в PB сеть устроена вполне логично учитывая кроссплатформу. Ты до сих пор не показал кроссплатформенного примера с асинхронными сокетами!
Цитата zamabuvaraeu ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) Ну вот видите, эта функция блокирует GUI. Поэтому вы или запускаете отдельный поток Для сети другой поток обязателен. Потому что могут быть разные причины остановки выполнения кода, MessageBox к примеру. И все, данные не приняты!
|
|
| |
zamabuvaraeu | Дата: Суббота, 16.04.2022, 07:03 | Сообщение # 109 |
Подполковник
Группа: Друзья
Сообщений: 148
Статус: Offline
| Цитата laser ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) Я же писал что в PB (читай юзермод) проверка наличия данных занимает меньше микросекунды. В ядре понадобится еще меньше времени. Оттого проц не сильно грузит. Объясните, зачем нужно писать плохой код с этими проверками, если можно написать хороший код без этих проверок?Добавлено (16.04.2022, 07:08) ---------------------------------------------
Цитата zamabuvaraeu ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) Для сети другой поток обязателен. Потому что могут быть разные причины остановки выполнения кода, MessageBox к примеру. И все, данные не приняты! То есть вы игнорируете мои ответы, что MsgWaitForMultipleObjectsEx не блокирует GUI.Добавлено (16.04.2022, 07:11) --------------------------------------------- У меня программа работает в однопоточном режиме. Модальные диалоговые окна вроде MessageBox не блокируют сеть. И без всяких проверок данных по таймеру.
|
|
| |
laser | Дата: Суббота, 16.04.2022, 11:05 | Сообщение # 110 |
Лейтенант
Группа: Пользователи
Сообщений: 57
Статус: Offline
| Цитата zamabuvaraeu ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) зачем нужно писать плохой код Код нормальный. Если хочешь чтобы я признал его не оптимальным, покажи пример асинхронных сокетов для винды линя и мака.
Цитата zamabuvaraeu ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) То есть вы игнорируете мои ответы, что MsgWaitForMultipleObjectsEx не блокирует GUI. Затормозить основной поток может что угодно. Буфер переполнится и часть данных потеряются. Удачи с таким подходом.
Цитата zamabuvaraeu ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) У меня программа работает в однопоточном режиме. Многопоточные не пишешь или стабильная работа не нужна?
|
|
| |
zamabuvaraeu | Дата: Воскресенье, 17.04.2022, 00:01 | Сообщение # 111 |
Подполковник
Группа: Друзья
Сообщений: 148
Статус: Offline
| Цитата laser ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) Код нормальный.Если хочешь чтобы я признал его не оптимальным Любой код, который дёргает процессор вхолостую — неоптимальный. Что и требовалось доказать.
Цитата laser ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) Затормозить основной поток может что угодно Это постоянно делает операционная система, когда переключает потоки. Ничего страшного от этого не происходит.
Цитата laser ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) Буфер переполнится Не переполнится если правильно указывать его длину.
Цитата laser ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) Многопоточные не пишешь или стабильная работа не нужна? Для сервера использую пул потоков.
|
|
| |
laser | Дата: Воскресенье, 17.04.2022, 12:58 | Сообщение # 112 |
Лейтенант
Группа: Пользователи
Сообщений: 57
Статус: Offline
| zamabuvaraeu, не нужно выдергивать фразу из контекста. Я совсем не это написал! Ты упорно игнорируешь просьбу представить кроссплатформенный код с асинхронными сокетами. При этом также упорно утверждаешь что PB код не оптимален. Пока что утверждения голосновны. Чтобы доказать свою правоту, ты должен показать пример о котором я пишу. Ты на 100% уверен что на лине и маке возможен тот же подход что на винде? Не допускаешь что в PB наиболее оптимальный метод с учетом всех поддерживаемых платформ? Если допускаешь, чего прикапываешься? Если не допускаешь, правильный кроссплатформенный код встудию!
|
|
| |
zamabuvaraeu | Дата: Воскресенье, 17.04.2022, 17:28 | Сообщение # 113 |
Подполковник
Группа: Друзья
Сообщений: 148
Статус: Offline
| Оставлю это вам в качестве домашнего задания. Подсказка: копайте в сторону epoll().
|
|
| |
laser | Дата: Воскресенье, 17.04.2022, 19:23 | Сообщение # 114 |
Лейтенант
Группа: Пользователи
Сообщений: 57
Статус: Offline
| Критиковать можешь, а как дошло до дела, сразу в кусты? Значит слив засчитан.
|
|
| |
zamabuvaraeu | Дата: Понедельник, 18.04.2022, 08:07 | Сообщение # 115 |
Подполковник
Группа: Друзья
Сообщений: 148
Статус: Offline
| Дошло до дела? Мне нет никакого дела до исправлений коммерческих продуктов.
|
|
| |
laser | Дата: Вторник, 19.04.2022, 11:03 | Сообщение # 116 |
Лейтенант
Группа: Пользователи
Сообщений: 57
Статус: Offline
| Значит признаешь что с асинхронными сокетами все не так гладко в плане кроссплатформенности и ты не знаешь как на лине и маке сделать тоже что на винде? Тады слив защитан!
|
|
| |
zamabuvaraeu | Дата: Пятница, 22.04.2022, 04:49 | Сообщение # 117 |
Подполковник
Группа: Друзья
Сообщений: 148
Статус: Offline
| laser, интересная у вас логика:
* если чего‐то нет (или вы не нашли) кроссплатформенного — это неправильно и применяться не должно; * если что‐то не идёт с компилятором — это неправильно и применяться не должно * гонять процессор вхолостую — это нормально
Мне нет никакого дела до решения за вас вашего домашнего задания для упомянутых вами линей и маков. И вам тоже нет до них дела, вы же говорили, что пишете исключительно под винду.
|
|
| |
laser | Дата: Воскресенье, 24.04.2022, 20:21 | Сообщение # 118 |
Лейтенант
Группа: Пользователи
Сообщений: 57
Статус: Offline
| Цитата zamabuvaraeu ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) если чего‐то нет (или вы не нашли) кроссплатформенного — это неправильно и применяться не должно Я такого не писал. Ты прикопался к сетевой библе PB, аргументируя что она тратит много лишнего процессорного времени (0.7 микросекунд это очень много?), но совершенно не учитываешь что библа кроссплатформенная. Неужели не можешь понять что в библе PB наиболее оптимальный подход учитывая различия винды, линя и мака? Если не согласен - кроссплатформенную библу на асинхронных сокетах встудию!
Цитата zamabuvaraeu ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) если что‐то не идёт с компилятором — это неправильно и применяться не должно Не нужно придумывать. Я не это писал и аргументировал свои ответы.
Цитата zamabuvaraeu ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) гонять процессор вхолостую — это нормально Покажи библы на асинхронных сокетах для линя и мака. Тогда поговорим на эту тему.
Цитата zamabuvaraeu ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) Мне нет никакого дела до решения за вас Я не просил что-то решать. Ты никак понять не можешь что подход винды не всегда годится на лине и маке, а функции библы должны быть идентичными для всех платформ.
Цитата zamabuvaraeu ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) И вам тоже нет до них дела, вы же говорили, что пишете исключительно под винду. Большинство моих приложений для винды, но ты прикопался к библе PB, а она кроссплатформенная.
|
|
| |
laser | Дата: Пятница, 23.12.2022, 18:37 | Сообщение # 119 |
Лейтенант
Группа: Пользователи
Сообщений: 57
Статус: Offline
| От администратора:
Насколько я помню , zamabuvaraeu держался в рамках обсуждения кодинга или около того и лично вас не цеплял. Вопросы его или еще чьих ориентаций оставим за рамками этого форума. Что касается ваших прошлых постов в этом же духе , там у вас были обоюдные переходы на личности с DarkDemon , поэтому те посты оставил.
|
|
| |
zamabuvaraeu | Дата: Понедельник, 26.12.2022, 19:56 | Сообщение # 120 |
Подполковник
Группа: Друзья
Сообщений: 148
Статус: Offline
| Вот что ещё обнаружил.
Про язык:
При выборе чисел оператор Select будет сравнивать только целые числа. А если вы подсунете ему Float, произойдёт обрезание дробной части. Беззнаковые 64‐битные числа не поддерживаются. Нельзя создать неинициализированную переменную.
Про IDE:
Несмотря на то, что IDE основана на том же движке, что и Notepad++ (а ведь Notepad++ всего лишь текстовый редактор с раскраской), она не умеет такую элементарную вещь, как одновременное отображение нескольких документов. Средства отладчика вроде просмотра переменных лежат не во вкладках, а в отдельных плавающих окнах с флагом TopMost, которые постоянно загораживают код. Если вы решили переключиться на другое приложение по Alt+TAB, то эти окна будут загораживать ваши программы. Когда вы набираете код, вам подсовывают всплывающий список с подсказками. Но выбрать из него списко по кнопке Enter нельзя, потому что для этой операции есть неочевидная горячая клавиша. Нужно идти в настройки и менять на общепринятое поведение.
Точки останова нельзя установить мышкой. Точки останова не сохраняются между перезапусками IDE. Отсутствует точка останова типа «точка ведения журнала». Вам придётся засорять код вставками Debug, чтобы вывести значение переменной в отладочное окно.
|
|
| |