О сколько нам открытий чудных...
Тяжела и неказиста жизнь простого программиста!
Программа загрузчик, чей фэйс показан в начале статьи работала всегда верой и правдой, выручала меня неоднократно и вдруг…
Когда чужие программы ерундят при изменении условий их применения — это уже привычно и понятно! Но когда твоя родная, работавшая на разных типах контроллеров, в которой каждую строчку исходника знаешь…
Понадобилось мне перекинуть на компьютер-программатор ( 386 sx ) исходники на *.ASM для прошивки контроллера «Atmel 89c2051». На новом — нет дисководов, на старом — нет USB. Проблема не новая и у меня целый арсенал Windows -> DOS программ для переброски Windows -> USB -> COM -> DOS. Есть также и аналог «Slave» части загрузчика для «ADAM-5510»/«I-7188»/«Octagon» под IBM-DOS, смотри: mtaalamu.ru/blog/959.html
Вот я его и притянул к задачке. О ужас! Счетчик неподтвержденных пакетов растет, а переданных пакетов — по 3 за 1 минуту! Полез проверять шнуры, порты и т.п.… Полный бред! В контроллер «I-7188/D/DOS/512» CPU AMD 80188 40 Mh. грузится, а в IBM-386 sx — НЕТ! Зацепило меня основательно. Угробил день принципиально.
После внимательного наблюдения за счетчиком ошибок пакетов — появилась версия — Windows Master не успевает полноценно принять подтверждение от «Slave» о принятии пакета. Тормозит «ВЕРХ» (1,7 ГГц )! Оказалось, что контроллер «I-7188/D/DOS/512» CPU AMD 80188 40 Mh. — медленнее IBM-386 sx — 40 Mh.!
Подробно смотри:
mtaalamu.ru/blog/938.html
mtaalamu.ru/blog/939.html
mtaalamu.ru/blog/943.html
mtaalamu.ru/blog/959.html
mtaalamu.ru/blog/964.html
mtaalamu.ru/blog/969.html
mtaalamu.ru/blog/980.html
Ответ снизу идет после тормоза — верхний комп успевает принять подтверждение. При работе же с IBM-386 sx — не успевает! Ненавижу такие непонятки! Завел исходники — стал «убивать» один сервис за другим. Скорость растет на 5-10%! Компилировал с оптимизацией на скорость — таже хрень.
Поменял событие — источник прерывания порта СОМ — ВОТ ОНО!
На первый взгляд «Вариант 1» ничем не отличается от «Варианта 2». Однако скорость приема выросла в разы! Если вы думаете, что влияют многие условия «IF» — таки и НЕТ!
Мало в жизни ума — необходимо везение!
Успехов!
Программа загрузчик, чей фэйс показан в начале статьи работала всегда верой и правдой, выручала меня неоднократно и вдруг…
Когда чужие программы ерундят при изменении условий их применения — это уже привычно и понятно! Но когда твоя родная, работавшая на разных типах контроллеров, в которой каждую строчку исходника знаешь…
Понадобилось мне перекинуть на компьютер-программатор ( 386 sx ) исходники на *.ASM для прошивки контроллера «Atmel 89c2051». На новом — нет дисководов, на старом — нет USB. Проблема не новая и у меня целый арсенал Windows -> DOS программ для переброски Windows -> USB -> COM -> DOS. Есть также и аналог «Slave» части загрузчика для «ADAM-5510»/«I-7188»/«Octagon» под IBM-DOS, смотри: mtaalamu.ru/blog/959.html
Вот я его и притянул к задачке. О ужас! Счетчик неподтвержденных пакетов растет, а переданных пакетов — по 3 за 1 минуту! Полез проверять шнуры, порты и т.п.… Полный бред! В контроллер «I-7188/D/DOS/512» CPU AMD 80188 40 Mh. грузится, а в IBM-386 sx — НЕТ! Зацепило меня основательно. Угробил день принципиально.
После внимательного наблюдения за счетчиком ошибок пакетов — появилась версия — Windows Master не успевает полноценно принять подтверждение от «Slave» о принятии пакета. Тормозит «ВЕРХ» (1,7 ГГц )! Оказалось, что контроллер «I-7188/D/DOS/512» CPU AMD 80188 40 Mh. — медленнее IBM-386 sx — 40 Mh.!
Подробно смотри:
mtaalamu.ru/blog/938.html
mtaalamu.ru/blog/939.html
mtaalamu.ru/blog/943.html
mtaalamu.ru/blog/959.html
mtaalamu.ru/blog/964.html
mtaalamu.ru/blog/969.html
mtaalamu.ru/blog/980.html
Ответ снизу идет после тормоза — верхний комп успевает принять подтверждение. При работе же с IBM-386 sx — не успевает! Ненавижу такие непонятки! Завел исходники — стал «убивать» один сервис за другим. Скорость растет на 5-10%! Компилировал с оптимизацией на скорость — таже хрень.
Поменял событие — источник прерывания порта СОМ — ВОТ ОНО!
На первый взгляд «Вариант 1» ничем не отличается от «Варианта 2». Однако скорость приема выросла в разы! Если вы думаете, что влияют многие условия «IF» — таки и НЕТ!
Мало в жизни ума — необходимо везение!
Успехов!
Комментарии (7)
RSS свернуть / развернутьyababay
Внутри Private sub адресация локальная!
Безусловные переходы по GO TO в других алгоритмах
( Внутри Private sub ) проявляют себя как простое, проверенное годами
и очень эффективное средство.
Доказательств не будет — нет времени.
Тогда уж надо все переменные засунуть внутрь Private sub
исходя из этой логики...
Ведь Global переходы по MOV variables (*.asm) для процессора
столь же сложная задача. Даже безусловный переход проще !
Смотрите на Private sub как на перегружаемый класс, убиваемый после
жизни деструктором.
При этом взгляде на тему GO TO — даже предпочтительнее, так как не
оставляет в стеке процессора точек возврата как в IF, DO LOOP, DO UNTIL…
С точки зрения программиста-железячника нет авторитетных истин (тем более легенд), а есть владыка КОМПИЛЯТОР — который сотворит Nativ code только по ему одному известному принципу, и ему плевать на наши представления о процессе !
Markony
Просто в Java GOTO нет и он первое, что бросилось в глаза.
yababay
durman
Sergei_T
Давайте оформлять топики грамотно:
Перед знаками препинания пробел не ставится
Не нужно ставить лишние пробелы
Название должно отображать смысл топика
Теги должны соответствовать теме топика
Sergei_T
Markony
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.