Re: Удаление лишних пробелов | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
С чего вы решили (да и не вы одни, тролликов хватает), что меня так волнует это п...мерянье, да еще и вдобавок мнение каких-то "монстров". Кому нужно, может тому и пригодится. |
Re: Удаление лишних пробелов | |
---|---|
of63 Сообщений: 25244 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Ну, так мне показалось, что я как-то поясню отрицаловку по отношению к тебе... Хотя тут сложнее, отрицалова на этом форуме нет, все прощают друг другу, довольно быстро )
П..мерянье зачем может пригодиться? Бабам например, мужикам... они вроде не заморачиваются сильно размером...? Исправлено 1 раз(а). Последнее : of63, 24.01.18 00:49 |
Re: Удаление лишних пробелов | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Причем здесь бабы, мужики - п...меряньем пацаны сидя на заборе занимаются.
ЗЫ. Опять вы берега начали путать, пока. |
Re: Удаление лишних пробелов | |
---|---|
of63 Сообщений: 25244 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
на заборе остро, и занозисто )
|
Re: Удаление лишних пробелов | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
Было несколько сборок. Какая-то выдавала такое сообщение только при повторных вызовах. ------------------ Лень - это неосознанная мудрость. |
Re: Удаление лишних пробелов | |
---|---|
spinz Сообщений: 5263 Дата регистрации: 21.01.2016 |
Что-то не понял за счет чего выигрыш. Твой сишный код в принципе не может быть быстрей |
Re: Удаление лишних пробелов | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
За счёт исключения ненужных фоксовых операций над строками. Такой код в любом случае потребует LEFT(), плюс лишнее создание ещё одной строки (буфера) и передачу её в машкод. Мне просто лень было влазить в этот машкод, чтобы заменить работу с 2-мя блоками памяти на работу с одним - тем самым убрав из точки вызова бессмысленный memmove на размер этой же строки. Ну и как бонус, получив возможность работать с чуть большими строками (у меня до 400Мб получалось обработать - в "чистом/свежезапущенном" IDE фокса).
То что сгенерённый студией машкод для собственно реализации алгоритма неоптимален - я даже и не собираюсь спорить Вся соль как раз в том что твоя борьба "за такты" в реализации самого схлопывания замечательно съедается ненужными копированиями гигантских строк-блоков в точке вызова и в фоксовой части кода. Я полагал что фокс вообще даст "прямой" доступ - тогда бы скорость была ещё выше - т.к. не происходило бы вообще копирований мега-строки с места на место, только "усечение" по результату и всё. Но FoxAPI это, увы, не позволяет - таки присутствуют как минимум два memmove (ну и соответственно alloc-и под них). ------------------ WBR, Igor |
Re: Удаление лишних пробелов | |
---|---|
spinz Сообщений: 5263 Дата регистрации: 21.01.2016 |
Ну, учитывая, что я в фоксе полный дилетант, меня и не интересовала скорость реализации именно при вызове функи из фокса. А вот реализация на асме дала определенную пищу для размышлений |
Re: Удаление лишних пробелов | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Что за реализация? |
Re: Удаление лишних пробелов | |
---|---|
spinz Сообщений: 5263 Дата регистрации: 21.01.2016 |
Ну я говорю про код Леонида и свои попытки его обогнать))
upd А, понял, тут ключевое слово "дала" Исправлено 1 раз(а). Последнее : spinz, 27.01.18 10:28 |
Re: Удаление лишних пробелов | |
---|---|
andrewk Сообщений: 174 Откуда: Красноярск Дата регистрации: 15.05.2005 |
Вот, к сожалению, есть исключения. Я на своей практике сталкивался и так и не победил два (насколько помню) раза. 2. Второй случай актуален и сейчас. После относительно длительной процедуры (секунд 30, наверное, и больше), в которой идёт интенсивное чтение относительно большого количества данных, например, формирование "большого" отчёта, уже в самом конце, когда отчёт готов и выведен на экран и FPD переходит в состояние ожидания реакции юзера (modify file), процесс FPD зависает. Перестают тикать секунды. Снимается, понятно, только "крестиком". Проявляется проблема спорадически, в одной и той же конторе на одном компе нормально, на другом иногда встаёт колом. Более того, если подключиться к этой машине по RDP, проблема может не возникать, а у «основного» локального юзера на той же машине – косяк. Отловить невозможно – по шагам проблема не воспроизводится. Вроде как, чаще проявляется если данные лежат именно на этой машине, а не тянутся по сети. Опытным путём нашёл костыль, полностью снимающий эту проблему. Если на конкретной машине косяк проявляется, то в программе в настройке локального рабочего места ставлю галочку. При запуске проги, если эта галочка установлена, с помощью NirCmd переключаю процесс ntvdm.exe на работу на одном ядре. Убого, но работает. 1. Первый случай помню плохо по прошествии лет. Но маялся с ним очень долго. В редких случаях на относительно больших базах (но наоборот, при работе по сети) что-то происходило во время выполнения процедуры биллинга (там тоже интенсивное чтение/запись с блокировками). Насколько помню, тоже зависал процесс, корёжились индексы. Боролся тем, что в разные места вставлял задержки. Типа после каждой сотни обработанных объектов делал wait "ждём 3 секунды" window time 3. В каком именно месте программы возникал косяк так и не удалось обнаружить – эта процедура постоянно меняется и со временем проблема как-то перестала проявляться. |
Re: Удаление лишних пробелов | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Есть известная проблема зависания FPD-приложений на многоядерных процессорах. Лечится путем запуска в bat-файле утилиты типа iceaffinity.exe (насчет точности указанного имени не уверен). После этого зависаний нет. Проверено многократно. На форуме тоже есть обсуждение этой темы. Исправлено 1 раз(а). Последнее : Simple777, 31.01.18 15:18 |
Re: Удаление лишних пробелов | |
---|---|
LUCIAN Сообщений: 343 Откуда: Лида Беларусь Дата регистрации: 25.03.2008 |
forum.foxclub.ru |
Re: Удаление лишних пробелов | |
---|---|
spinz Сообщений: 5263 Дата регистрации: 21.01.2016 |
По поводу выравнивания была отличная статья на хабре
habrahabr.ru |
Re: Удаление лишних пробелов | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Ерунда все это. Не читал - но не одобряю. (не, ну пытался таки же сколько-то )
Но Игорь в принципе правильно сказал где-то в начале еще - как будут все эти "ассемблерные вставки" разгребаться на 4-х ядерном скажем процессоре - то бабка по воде вилами писала. ;) Вполне возможно (да оно и скорее всего), какой-нибудь сишно-диезный код с "вложенной самооптимизацией" сделает таки выполнение того же самого на нынешних процах (особливо скажем на новых 12-16-ядерных) реально на порядки быстрее, нежели попытка "возврата к истокам". Ну а так, как бы для кухни, типа поговорить по душам, тема в принципе конечно "ничо так". Типа Герцен. "Былое и думы". ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) |
Re: Удаление лишних пробелов | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Цитата оттуда кстати: Цитата: чем-то вдруг напомнила песню: Цитата: ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) |
Re: Удаление лишних пробелов | |
---|---|
spinz Сообщений: 5263 Дата регистрации: 21.01.2016 |
Да говнокод никакой компилятор не спасет |
Re: Удаление лишних пробелов | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Увиливаешь. ;) Суть в самом принципе как бы. Т.е. вопрос поставлен ребром: Стоит ли мучиться написанием машинных кодов? Либо использовать таки новые технологии? Что есть больший гут? Говно однозначно изначально оставляем соответствующему помещению. И считаем, что в обоих случаях работают лучшие повара. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) |
Re: Удаление лишних пробелов | |
---|---|
spinz Сообщений: 5263 Дата регистрации: 21.01.2016 |
В каких-то случаях стоит |
Re: Удаление лишних пробелов | |
---|---|
andrewk Сообщений: 174 Откуда: Красноярск Дата регистрации: 15.05.2005 |
Дак, возможно, когда-то чтение форума и толкнуло меня в эту сторону подумать насчёт ядер)) Но вариант с IceAffinity.exe мне не нравится тем, что он запускается перед стартом нашего процесса, то есть всегда. А (по моей статистике клиентов) такие зависы происходят процентах, наверное, на 10 компьютеров, не больше. Поэтому принудительно переключать всех на одно ядро как-то не комильфо. Лучше уж, раз есть возможность, это сделать только по необходимости. |
© 2000-2024 Fox Club  |