Т.е. ну ни как нельзя. А жаль, я то глупенький понять не могу, как это так, нельзя а работает, негарантируется а стабилен, Наверное мне какойто исключительный мк попался, зЗавтра другой запаяю, вдруг все то что все так горяче доказывают правда. :-)
Мой ответ был на Вашу конкретную фразу про даташит. А то, что Вы не соблюдаете написанное в даташите - это Ваше личное дело, спорить с этим не буду. Эксперементировать никто не запрещает. Я ведь сам давал ссылку на тему с разгоном ардуино в жидком азоте, ардуина там вполне работала.
prt , Речь не просто а разгоне, а об нахождении аптимального режима при разгоне, при котором не надо вешать радиатор или погружать мк в жидкий азот. Программа работает без сбоев. Если бы более высокая частота небыла заложена при создании чипа, то и бита CKPOT небыло и в помине. Вы не дождались конечного результата. Может загрузив задачу посерьезнее проявятся сбои или сильный разогрев и тема могла закончится постом типа, ЭРаботает, но перегривается и сбоит в процессе работы программы. И не душите дух исследователя в юном поколении. Мы так бы и в космос не полители. Ведь первые ракеты взрывались прямо на старте.
Весь разгон ардуины ограничен быстродействием флеш-памяти. Никаких настроек или регулировок для нее атмега не предлагает. Так что гнать вы сможете только совсем безыскусно, просто увеличивая тактовую. Где флеш заткнется, там и предел. Такие перед вами вырисовываются полеты в космос.
prt , Речь не просто а разгоне, а об нахождении аптимального режима при разгоне, при котором не надо вешать радиатор или погружать мк в жидкий азот.
Это возможно только для конкретного экземляра, благодаря разбросу характеристик IC, обусловленных особенностями технологического процесса их изготовления. То есть, один кристал может проработать на 24МГц год, другой сдохнет через несколько секунд, третий - через неделю.
Проблема в том, что разгон без повышения напряжения питания и/или дополнительного принудительного охлаждения не предсказуем. Сверхнормативному нагреву может подвергаться только один или несколько проводников в одном из слоев металлизации IC. Для МК это может проявляться только на одном конкретном узле и даже только при выполнении одной конкретной команды в конкретных условиях. Обнаружить это не в лабораторных условиях не реально. По крайней мере, я не знаю, как это сделать без ИК мониторинга непосредственно кремниевого кристалла. Причем с хорошим разрешением.
Получается метод ненаучного тыка с непредсказуемыми последствиями для МК. Не серьезно и очень по детски.
Весь разгон ардуины ограничен быстродействием флеш-памяти. Никаких настроек или регулировок для нее атмега не предлагает. Так что гнать вы сможете только совсем безыскусно, просто увеличивая тактовую. Где флеш заткнется, там и предел. Такие перед вами вырисовываются полеты в космос.
Единственный осмысленный аргумент. Обратим внимание. О производстве м/с рассказывать ненадо, я два года проработал на их производстве, не atmel конечно. Что касается быстродействия Flash то показатель процесс програмирования, если происходит корректная запись, а это самый тяжелый для нее процесс, то и считываться(выполняться) она будет легко. Если процессор работал на частоте выше 60 МГц в житком азоте, то и на 30 - 32 МГц он работать будет.
Производительность ардуины измеряется в MIPS-ах и от среды программирования не зависит. ...
Вы не правы. Точнее не совсем правы. Ардуино это не столько камень типа ATmega328, сколько Wiring и кучи плохо писанных сторонних библиотек, опирающихся на него. ptr - прав: "разогнать Ардуино" можно именно таким способом .. отказавшись от "Ардуино". И в разы .. десятки раз. :)
Применение Атмел Студии и Ассемблерных вставок, нормальных библиотек .. это уже НЕ "Ардуино" .. это просто программирование камня от Atmel, ваще-то. :)
Соглашусь, что оптимизировать надо те участки кода, которые исполняются 70-80% времени. Если точнее (для автооптимизаторов), то порог равен 72.4%. А поскольку оптимизация кода полностью математически доказуема, то её можно или переложить на плечи компиляторов (хороших) или приучиться делать "автоматически на лету" .. пальчиками. Собственно чем профессионал и отличается от новичка в программировании.
И когда тут некоторым, якобы профессионалам задают вопросы "а почему так?" .. как правило под ними содержится именно этот момент: "почему так неоптимально" .. то есть "непрофессионально". :)
Для примера (взял реальный). 20 разделов для 5 групп мер, 79 измерений (больше 1000 аттрибутов), 76 исходных таблиц, 23 трансформированных таблиц, почти 57 представлений (трансформаций на лету). Более 100 миллионов записей во всех группах мер суммарно.
Ни один из процессов тут не съест и 10% от суммарного времени загрузки данных и процессинга куба.
...
Ваши предложения?
Вы мне предлагаете роль аспиранта, который должен найти ошибку в очередном проекте вечного двигателя?
Не слишком благодарное занятие, особенно учитывая, что мы с Вами пользуемся различной терминологией. Лично я под кубом понимаю 3-мерную геометрическую фигуру с 6-ю гранями, а Вы?
Да и задача сформулирована некорректно в том смысле, что искать предлагается совсем не там, где нужно: вероятнее всего, что проблемным местом является не высокоуровневая процедура обработки одного из десятков параметров, а какая-нмбудь низкоуровневая процедура, используемая в каждом из блоков обработки, например, сортировка или чтение с внешнего носителя.
Вы мне предлагаете роль аспиранта, который должен найти ошибку в очередном проекте вечного двигателя?
Нет, я предлагаю, чтобы вы доказали свое же утверждение : "нет критических мест, которые жрут основной ресурс - не верю" или извинились и признали его ложным.
andriano пишет:
Лично я под кубом понимаю 3-мерную геометрическую фигуру с 6-ю гранями, а Вы?
Это частный случай. У куба может быть сколько угодно измерений.
andriano пишет:
Да и задача сформулирована некорректно в том смысле, что искать предлагается совсем не там, где нужно: вероятнее всего, что проблемным местом является не высокоуровневая процедура обработки одного из десятков параметров, а какая-нмбудь низкоуровневая процедура, используемая в каждом из блоков обработки, например, сортировка или чтение с внешнего носителя.
Я вам результат профилирования высокоуровневого дал. Ниже уровня SQL никто при оптимизации тут опускаться не будет, так что ни сортировки, ни чтение/запись страниц базы и лога тут оптимизации точно не подлежат. Да они уже давно разработчиком SQL Server оптимизириваны, почти до предела.
Параметров тут вообще, можно сказать, нет. Режим работы только - полное обновление или инкрементальное. Остальные совершенно служебные, типа уровень отладочных сообщений или переменная для кода возврата.
При равномощном разбиении на участки, оптимизации подлежит КАЖДЫЙ участок .. ваще-то. А часто это сигнал к полному рефакторингу алгоритма. Или задача уже имеет оптимизированный вид, просто он "вот такой" и "шустрее" можно только на ином железе, способе хранения и т.д.
При равномощном разбиении на участки, оптимизации подлежит КАЖДЫЙ участок .. ваще-то.
Плюсую. Но это в идеале. Когда этих участков тысячи, а времени на оптимизацию дни, сортируем участки по времени выполения и TOP 100 анализируем на предмет оптимизации. Те места. где можно достигнуть повышения производительности более, чем на порядок, оптимизируются.
Не, оно конечно можно Черное море и лопаткой в одиночку копать .. но когда "участков тысячи" и они равномощны, то оптимизируется КАЖДЫЙ участок, а не "ТОП100". Просто "оптимизаторов" должно быть соответствующее количество и подходы грамотные с инструментами (бульдозеры, экскаваторы, чертежи, планы), а не "детский совочек" для песочницы. :)
Чаще всего они представлены микроконтроллерами, где, помимо вычислительного устройства, на кристалле расположены дополнительные компоненты (память программ и данных, интерфейсы, порты ввода-вывода, таймеры и др.).
Сомневаюсь, что вам это удастся. Так как современные CPU не представимы без памяти (хотя бы кеша) и устройств ввода-вывода не борту. Например, у AMD гипертранспорт, у Intel QPI.
оптимизируется КАЖДЫЙ участок, а не "ТОП100". Просто "оптимизаторов" должно быть соответствующее количество
Не рентабельно. Фрилансера или аутсорсера туда пускать вообще бессмысленно, так как он будет месяц только в код врубаться. Оптимизатор на постоянной работе мне обойдется тыс. в 200 рублей в месяц. Причем это чисто затратная статья бюджета, так как зачаржить эти работы на клиента шансы очень призрачные. Все же мы внедряем софт, а не его разрабатываем. Причем оптимальность кода у моих разработчиков существенно выше, чем у той же бельгийской Ферранти, продукт которой я внедряю последние четыре года.
Нет, я предлагаю, чтобы вы доказали свое же утверждение : "нет критических мест, которые жрут основной ресурс - не верю" или извинились и признали его ложным.
!!!???!!!
Нет, я много всего видел, но чтобы кто-то требовал доказательства вопросов веры - вижу впервые!
Цитата:
Это частный случай. У куба может быть сколько угодно измерений.
Одномерный "куб", насколько мне известно, называетсмя отрезком. Двумерный - квадратом, а имеющий 4 и более измерений - гиперкубом. Куб - всегда 3 измерения.
Цитата:
Я вам результат профилирования высокоуровневого дал.
А именно он здесь и не представляет интереса.
Цитата:
Ниже уровня SQL никто при оптимизации тут опускаться не будет, так что ни сортировки, ни чтение/запись страниц базы и лога тут оптимизации точно не подлежат. Да они уже давно разработчиком SQL Server оптимизириваны, почти до предела.
Ну да:
Цитата:
- А почему?
- Компьютер так посчитал.
Разумеется, разработчики что-то свое уже оптимизировали, но это совершенно не гарантирует от с овершенно чудовищной организации запросов. Например, мне попадалась реализация, которая на подведение статистики по единственному параметру в базе, содержащей ~1000 объектов, расходовала несколько секунд. Запрос был составлен так, что реализация алгоритма сложностью O(N) составляла O(N^2).
Цитата:
Параметров тут вообще, можно сказать, нет. Режим работы только - полное обновление или инкрементальное. Остальные совершенно служебные, типа уровень отладочных сообщений или переменная для кода возврата.
Ну, для кого-то нет, а для кого-то и есть.
Вполне вероятно, что низкоуровневый анализ может выявить узкое место, связанное с несбалансированностью аппаратной конфигурации. В результате появятся рекомендации, как при помощи незначительной модернизации аппаратного обеспечения можно существенно увеличить общую производительность системы.
Обсудите этот вопрос в Википедии. Если вам удастся преубедить сообщество, то тогда я вами соглашусь.
1. Если текст, содержащийся в Википедии, противоречит некоторым основополагающим принципам, то тем хуже для Википедии. Я надеюсь, здесь нет людей, считающих Википедию истиной в последней инстанции?
2. В приведенных Вами ссылках я не обнаружил противоречий с приведенным мною утверждением. Зато у меня появилось подрзрение в непонимании Вами разницы между понятиями "функциональное устройство" и "устройство из номенклатуры конкретного производителя" вообще и между понятиями "ЦП" и "микросхема" в частности. ЦП может как состоять из некоторого количества микросхем (как это было в не столь далеком прошлом), так и являться частью микросхемы, в которой кроме ЦП есть еще память и периферийные устройства (как это практикуется сегодня).
Но наличие последних в составе микросхемы отнюдь не переносит их в состав ЦП.
Более того, приведенная Вами же цитата именно это и утверждает (выделено мной):
Цитата:
Чаще всего они представлены микроконтроллерами, где, помимо вычислительного устройства, на кристалле расположены дополнительные компоненты (память программ и данных, интерфейсы, порты ввода-вывода, таймеры и др.).
Цитата:
Так как современные CPU не представимы без памяти (хотя бы кеша) и устройств ввода-вывода не борту.
Не путайте ЦП с компьютером. Если современная микросхема содержит компьютер целиком, это еще не значит, что компьютер==ЦП.
Нет, я предлагаю, чтобы вы доказали свое же утверждение : "нет критических мест, которые жрут основной ресурс - не верю" или извинились и признали его ложным.
Нет, я много всего видел, но чтобы кто-то требовал доказательства вопросов веры - вижу впервые!
На этом можно было бы и закончить. Раз вы технические вопросы решаете при помощи веры )))
Цитата:
Одномерный "куб", насколько мне известно, называетсмя отрезком. Двумерный - квадратом, а имеющий 4 и более измерений - гиперкубом. Куб - всегда 3 измерения.
Я вам результат профилирования высокоуровневого дал.
А именно он здесь и не представляет интереса.
Удивляете. Этот результат хорошо показывает, что в процесс построения куба нет ни одного этапа, занимающего не то что 80, а даже 40% времени.
Цитата:
ptr пишет:
Ниже уровня SQL никто при оптимизации тут опускаться не будет,
Разумеется, разработчики что-то свое уже оптимизировали
Запрос был составлен так, что реализация алгоритма сложностью O(N) составляла O(N^2).
Сам себе противоричите. Я говорю "ниже уровня запросов", а вы "запрос был составлен так". Об одном и том же получается, об уровне запросов.
Цитата:
Ну, для кого-то нет, а для кого-то и есть.
Это догма или будут аргументы?
Цитата:
Вполне вероятно, что низкоуровневый анализ может выявить узкое место, связанное с несбалансированностью аппаратной конфигурации. В результате появятся рекомендации, как при помощи незначительной модернизации аппаратного обеспечения можно существенно увеличить общую производительность системы.
Очень мало вероятно, так как данные работы уже проводились и нами и клиентом еще в самом начале проекта и вполне на профессиональном уровне.
Обсудите этот вопрос в Википедии. Если вам удастся преубедить сообщество, то тогда я вами соглашусь.
1. Если текст, содержащийся в Википедии
Вы, похоже, меня неправильно проняли. Просто вопросы терминологии, на мой взгляд, явно выходят за рамки не только этой темы, но и всего форума. А для Википедии задача ведения единой терминологии является одной из ключевый. Вот там и обсуждайте, является ли МК ЦП или нет.
Цитата:
2. В приведенных Вами ссылках я не обнаружил противоречий с приведенным мною утверждением.
Утверждалось "ATmega2560 - это не ЦП"
Цитата:
Чаще всего они представлены микроконтроллерами, где, помимо вычислительного устройства, на кристалле расположены дополнительные компоненты (память программ и данных, интерфейсы, порты ввода-вывода, таймеры и др.).
Отсюда делаю вывод, что микроконтроллер есть один из видов процессоров. А вычислительным устройством я как-то всегда считал ALU
Цитата:
Не путайте ЦП с компьютером. Если современная микросхема содержит компьютер целиком, это еще не значит, что компьютер==ЦП.
Не путаю. Так как подобная логическая цепочка нарушает базовое правило логики. Но в частном случае, это возможно. Например, бортовой компьютер моей L200, управляющий двигателем состоит из одного CPU, выполненного в виде микроконтроллера. В случае с ардуино это не так. AVR является CPU, но компьютером можно рассматривать только всю плату ардуино. Что не отменяет того, что в какой-нибудь посудомоечной машине, такой же AVR будет компьютером.
А вообще, предлагаю завязать с этим. Как я рекомендовал выше, если данные моменты терминологии настолько для Вас важны - обсуждайте их в Википедии. А если не важны, то просто не засоряйте форум.
которую, Вы собственно, и цитировали. Это как раз тот случай, когда верить Википедии не следует, т.к. в статье содержатся внутренние противоречия. В первой части отождествляется ЦП и CPU, а там, где рассматриваются различные аохитектуры, ЦП явно противопоставляется ОЗУ, т.к. между ними происходит обмен данными. Обратите внмание: обмен данными не внутри процессора, а именно между процессором и ОЗУ, что говорит о том, что ОЗУ никак не может быть частью ЦП.
То есть нет изменяемой последовательности операций (программы). Значит не компьютер.
как же нет, если есть - последовательность включений и выключений уникальна для каждого выключателя и изменяется ползателем выключателя.
Разве?
Мне всегда казалось, что выключенный выключатель можно только включить, а включенный - выключить. Разве можно включить выключатель 3 раза подряд, потом выключить 7 раз и снова включить?
Проблема в том, что Выц путаете ЦП как архитектурную единицу с CPU
Повторю. Похоже, вы читаете через абзац или не воспринимаете все с первого раза:
Просто вопросы терминологии, на мой взгляд, явно выходят за рамки не только этой темы, но и всего форума. А для Википедии задача ведения единой терминологии является одной из ключевый. Вот там и обсуждайте, является ли МК ЦП или нет.
Мне всегда казалось, что выключенный выключатель можно только включить, а включенный - выключить. Разве можно включить выключатель 3 раза подряд, потом выключить 7 раз и снова включить?
а, как иначе может работать компьютер с памятью в один бит?
выключатель можно три раза не включить и семь раз не выключить - тыжепрограммист, должен понимать.
Не хотелось бы Вас огорчать неимоверно, но любой недетерминированный конечный автомат может быть перестроен в детерминированный. Это же главная теорема теории автоматов. Если не скучно, то я до сих пор помню доказательство... ;) ;) ;)
Детка, не переходите на личности. Выглядит очень глупо и по детски.
Цитата:
Компьютер не обязан иметь фоннеймановскую архитектуоу, следовательно, не обязан хранить программу в памяти.
Даже лента в машине Тьюринга - тоже память. Не имеет никакого значения, где хранится программа, но без программы компьютер функционировать не может по определению. А если подразумевалось, что 1 бит - это только емкость ALU, а кроме него на шине данных и ROM, и EPROM, и RAM, и I2C, и PCIe и т.п. - то это уже демагогия по определению )
Напомню, что спорить со мной неприятно и бесполезно, а теория алгоритмов - это один из основных предметов моего образованимя, полученного еще в СССР, на МехМате МГУ.
Так вот настенный выключатель - это бесспорно конечный автомат, самый простой, но формально так.
вот код:
(S0,0,S0)
(S0,1,S1)
(S1,0,S0)
(S1,1,S1)
Где S0 и S1 - состояния (вкл и выкл) - соответственно, а 0 и 1 - входные символы ("нажать вкл" и "нажать выкл"). Входной лентой является память и намерения оператора.
Если кто-то из диспутантов еще помнит, что такое конечный автомат, то признает, что так и есть.
Любой конечный автомат - компьютер, не стоит даже придумывать иную терминологию.
Следовательно, как ни парадоксально, но настенный выключатель - бесспорно компьютер.
ПТР отличился в ЦП, который он нашел на плате ардуино, не содержащей больше ничего.
Промахнулся, я ровно это и писал: "ATmega2560 является ЦП у Arduino Mega 2560". Ну и на плате ардуино еще стабилизатор питания есть, не считая светодиода и разъемов.
А вот andriano ударился в обсуждение терминологии, совершенно не понятно, что пытаясь доказать. Ведь если я уже пользуюсь не один десяток какой-то устоявшейся терминологией, то из-за кого-то одного ее ведь точно не поменяю )
Понятие CPU, с точки зрения архитектуры у нас совпало, понятие же CPU с точки зрения дискретизации по модулям/IC - нет.
Я бы еще поприкалывался над andriano по поводу CPU в IBM 390, где не только память микропрограмм является составной частью CPU, но даже интерфейс ввода-вывода к сервисному компьютеру, а CPU в IBM 5020 ничем, кроме ввода-вывода не занимается. Но не хочу засорять форум.
Не хотелось бы Вас огорчать неимоверно, но любой недетерминированный конечный автомат может быть перестроен в детерминированный. Это же главная теорема теории автоматов. Если не скучно, то я до сих пор помню доказательство... ;) ;) ;)
Приветстую, wdrakula!
Чем же тут меня огорчать? Вполне естественно что компьютер может исполнять функции конечного автомата, а вот наоборот - нет, о чем собственно и была речь.
Любой конечный автомат - компьютер, не стоит даже придумывать иную терминологию.
Следовательно, как ни парадоксально, но настенный выключатель - бесспорно компьютер.
ага. я же не зря поставил под сомнение Капитано Очевидность определения
ptr пишет:
Компью́тер (англ.computer, МФА: [kəmˈpjuː.tə(ɹ)][1] — «вычислитель») — устройство или система, способное выполнять заданную чётко определённую изменяемую последовательность операций.
сейчас мы пришли к заключению, что и настенный выключатель - компьютер.
ок. а, водопроводный кран, любой другой механизм, любой иной предмет, вселенная в целом или часть её - разве не являются устройством или системой, способными выполнять заданную чётко определённую изменяемую последовательность операций?
какой смысл в определени, которое подразумевает под собой ВСЁ без исключения?
Их вики:
Компью́тер (англ. computer, МФА: [kəmˈpjuː.tə(ɹ)][1] — «вычислитель») — устройство или система, способное выполнять заданную чётко определённую изменяемую последовательность операций.
И с какого боку ардуина не компьютер? Да я первые программы свои на таких гробах писал, что ардуине и в подметки не годятся )
Т.е. ну ни как нельзя. А жаль, я то глупенький понять не могу, как это так, нельзя а работает, негарантируется а стабилен, Наверное мне какойто исключительный мк попался, зЗавтра другой запаяю, вдруг все то что все так горяче доказывают правда. :-)
Мой ответ был на Вашу конкретную фразу про даташит. А то, что Вы не соблюдаете написанное в даташите - это Ваше личное дело, спорить с этим не буду. Эксперементировать никто не запрещает. Я ведь сам давал ссылку на тему с разгоном ардуино в жидком азоте, ардуина там вполне работала.
Да я первые программы свои на таких гробах писал, что ардуине и в подметки не годятся )
О! Нашел! Помнят их еще )
https://ru.wikipedia.org/wiki/%D0%9D%D0%B0%D0%B8%D1%80%D0%B8_(%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80)
prt , Речь не просто а разгоне, а об нахождении аптимального режима при разгоне, при котором не надо вешать радиатор или погружать мк в жидкий азот. Программа работает без сбоев. Если бы более высокая частота небыла заложена при создании чипа, то и бита CKPOT небыло и в помине. Вы не дождались конечного результата. Может загрузив задачу посерьезнее проявятся сбои или сильный разогрев и тема могла закончится постом типа, ЭРаботает, но перегривается и сбоит в процессе работы программы. И не душите дух исследователя в юном поколении. Мы так бы и в космос не полители. Ведь первые ракеты взрывались прямо на старте.
Весь разгон ардуины ограничен быстродействием флеш-памяти. Никаких настроек или регулировок для нее атмега не предлагает. Так что гнать вы сможете только совсем безыскусно, просто увеличивая тактовую. Где флеш заткнется, там и предел. Такие перед вами вырисовываются полеты в космос.
prt , Речь не просто а разгоне, а об нахождении аптимального режима при разгоне, при котором не надо вешать радиатор или погружать мк в жидкий азот.
Это возможно только для конкретного экземляра, благодаря разбросу характеристик IC, обусловленных особенностями технологического процесса их изготовления. То есть, один кристал может проработать на 24МГц год, другой сдохнет через несколько секунд, третий - через неделю.
Проблема в том, что разгон без повышения напряжения питания и/или дополнительного принудительного охлаждения не предсказуем. Сверхнормативному нагреву может подвергаться только один или несколько проводников в одном из слоев металлизации IC. Для МК это может проявляться только на одном конкретном узле и даже только при выполнении одной конкретной команды в конкретных условиях. Обнаружить это не в лабораторных условиях не реально. По крайней мере, я не знаю, как это сделать без ИК мониторинга непосредственно кремниевого кристалла. Причем с хорошим разрешением.
Получается метод ненаучного тыка с непредсказуемыми последствиями для МК. Не серьезно и очень по детски.
Весь разгон ардуины ограничен быстродействием флеш-памяти. Никаких настроек или регулировок для нее атмега не предлагает. Так что гнать вы сможете только совсем безыскусно, просто увеличивая тактовую. Где флеш заткнется, там и предел. Такие перед вами вырисовываются полеты в космос.
Единственный осмысленный аргумент. Обратим внимание. О производстве м/с рассказывать ненадо, я два года проработал на их производстве, не atmel конечно. Что касается быстродействия Flash то показатель процесс програмирования, если происходит корректная запись, а это самый тяжелый для нее процесс, то и считываться(выполняться) она будет легко. Если процессор работал на частоте выше 60 МГц в житком азоте, то и на 30 - 32 МГц он работать будет.
И с какого боку ардуина не компьютер? Да я первые программы свои на таких гробах писал, что ардуине и в подметки не годятся )
с такого боку и настенный выключатель - однобитный компьютер, программируемый изменением электрической проводки.
Вы не правы. Точнее не совсем правы. Ардуино это не столько камень типа ATmega328, сколько Wiring и кучи плохо писанных сторонних библиотек, опирающихся на него. ptr - прав: "разогнать Ардуино" можно именно таким способом .. отказавшись от "Ардуино". И в разы .. десятки раз. :)
Применение Атмел Студии и Ассемблерных вставок, нормальных библиотек .. это уже НЕ "Ардуино" .. это просто программирование камня от Atmel, ваще-то. :)
Соглашусь, что оптимизировать надо те участки кода, которые исполняются 70-80% времени. Если точнее (для автооптимизаторов), то порог равен 72.4%. А поскольку оптимизация кода полностью математически доказуема, то её можно или переложить на плечи компиляторов (хороших) или приучиться делать "автоматически на лету" .. пальчиками. Собственно чем профессионал и отличается от новичка в программировании.
И когда тут некоторым, якобы профессионалам задают вопросы "а почему так?" .. как правило под ними содержится именно этот момент: "почему так неоптимально" .. то есть "непрофессионально". :)
Для примера (взял реальный). 20 разделов для 5 групп мер, 79 измерений (больше 1000 аттрибутов), 76 исходных таблиц, 23 трансформированных таблиц, почти 57 представлений (трансформаций на лету). Более 100 миллионов записей во всех группах мер суммарно.
Ни один из процессов тут не съест и 10% от суммарного времени загрузки данных и процессинга куба.
...
Ваши предложения?
Вы мне предлагаете роль аспиранта, который должен найти ошибку в очередном проекте вечного двигателя?
Не слишком благодарное занятие, особенно учитывая, что мы с Вами пользуемся различной терминологией. Лично я под кубом понимаю 3-мерную геометрическую фигуру с 6-ю гранями, а Вы?
Да и задача сформулирована некорректно в том смысле, что искать предлагается совсем не там, где нужно: вероятнее всего, что проблемным местом является не высокоуровневая процедура обработки одного из десятков параметров, а какая-нмбудь низкоуровневая процедура, используемая в каждом из блоков обработки, например, сортировка или чтение с внешнего носителя.
Не совсем так. ATmega2560 является ЦП у Arduino Mega 2560
Совсем не так: ATmega2560 - это не ЦП, а компьютер в полном составе: ЦП, ОЗУ, устройства ввода и устройства вывода.
И с какого боку ардуина не компьютер? Да я первые программы свои на таких гробах писал, что ардуине и в подметки не годятся )
с такого боку и настенный выключатель - однобитный компьютер, программируемый изменением электрической проводки.
Поясните, пожалуйста, какую четко заданную изменяюмую последовательность операций (программу) может выполнять настенный выключатель.
Ваши предложения?
Вы мне предлагаете роль аспиранта, который должен найти ошибку в очередном проекте вечного двигателя?
Нет, я предлагаю, чтобы вы доказали свое же утверждение : "нет критических мест, которые жрут основной ресурс - не верю" или извинились и признали его ложным.
Лично я под кубом понимаю 3-мерную геометрическую фигуру с 6-ю гранями, а Вы?
Это частный случай. У куба может быть сколько угодно измерений.
Да и задача сформулирована некорректно в том смысле, что искать предлагается совсем не там, где нужно: вероятнее всего, что проблемным местом является не высокоуровневая процедура обработки одного из десятков параметров, а какая-нмбудь низкоуровневая процедура, используемая в каждом из блоков обработки, например, сортировка или чтение с внешнего носителя.
Я вам результат профилирования высокоуровневого дал. Ниже уровня SQL никто при оптимизации тут опускаться не будет, так что ни сортировки, ни чтение/запись страниц базы и лога тут оптимизации точно не подлежат. Да они уже давно разработчиком SQL Server оптимизириваны, почти до предела.
Параметров тут вообще, можно сказать, нет. Режим работы только - полное обновление или инкрементальное. Остальные совершенно служебные, типа уровень отладочных сообщений или переменная для кода возврата.
При равномощном разбиении на участки, оптимизации подлежит КАЖДЫЙ участок .. ваще-то. А часто это сигнал к полному рефакторингу алгоритма. Или задача уже имеет оптимизированный вид, просто он "вот такой" и "шустрее" можно только на ином железе, способе хранения и т.д.
При равномощном разбиении на участки, оптимизации подлежит КАЖДЫЙ участок .. ваще-то.
Плюсую. Но это в идеале. Когда этих участков тысячи, а времени на оптимизацию дни, сортируем участки по времени выполения и TOP 100 анализируем на предмет оптимизации. Те места. где можно достигнуть повышения производительности более, чем на порядок, оптимизируются.
Ровно об этом я и писал выше )
Не, оно конечно можно Черное море и лопаткой в одиночку копать .. но когда "участков тысячи" и они равномощны, то оптимизируется КАЖДЫЙ участок, а не "ТОП100". Просто "оптимизаторов" должно быть соответствующее количество и подходы грамотные с инструментами (бульдозеры, экскаваторы, чертежи, планы), а не "детский совочек" для песочницы. :)
Совсем не так: ATmega2560 - это не ЦП, а компьютер в полном составе: ЦП, ОЗУ, устройства ввода и устройства вывода.
Обсудите этот вопрос в Википедии. Если вам удастся преубедить сообщество, то тогда я вами соглашусь.
Центра́льный проце́ссор (ЦП; также центра́льное проце́ссорное устро́йство — ЦПУ; англ. central processing unit, CPU, дословно — центральное обрабатывающее устройство) — электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (код программ), главная часть аппаратного обеспечения компьютера или программируемого логического контроллера. Иногда называют микропроцессором или просто процессором.
...
Чаще всего они представлены микроконтроллерами, где, помимо вычислительного устройства, на кристалле расположены дополнительные компоненты (память программ и данных, интерфейсы, порты ввода-вывода, таймеры и др.).
https://ru.wikipedia.org/wiki/%D0%A6%D0%B5%D0%BD%D1%82%D1%80%D0%B0%D0%BB...
Сомневаюсь, что вам это удастся. Так как современные CPU не представимы без памяти (хотя бы кеша) и устройств ввода-вывода не борту. Например, у AMD гипертранспорт, у Intel QPI.
оптимизируется КАЖДЫЙ участок, а не "ТОП100". Просто "оптимизаторов" должно быть соответствующее количество
Не рентабельно. Фрилансера или аутсорсера туда пускать вообще бессмысленно, так как он будет месяц только в код врубаться. Оптимизатор на постоянной работе мне обойдется тыс. в 200 рублей в месяц. Причем это чисто затратная статья бюджета, так как зачаржить эти работы на клиента шансы очень призрачные. Все же мы внедряем софт, а не его разрабатываем. Причем оптимальность кода у моих разработчиков существенно выше, чем у той же бельгийской Ферранти, продукт которой я внедряю последние четыре года.
Нет, я предлагаю, чтобы вы доказали свое же утверждение : "нет критических мест, которые жрут основной ресурс - не верю" или извинились и признали его ложным.
!!!???!!!
Нет, я много всего видел, но чтобы кто-то требовал доказательства вопросов веры - вижу впервые!
Это частный случай. У куба может быть сколько угодно измерений.
Одномерный "куб", насколько мне известно, называетсмя отрезком. Двумерный - квадратом, а имеющий 4 и более измерений - гиперкубом. Куб - всегда 3 измерения.
Я вам результат профилирования высокоуровневого дал.
А именно он здесь и не представляет интереса.
Ниже уровня SQL никто при оптимизации тут опускаться не будет, так что ни сортировки, ни чтение/запись страниц базы и лога тут оптимизации точно не подлежат. Да они уже давно разработчиком SQL Server оптимизириваны, почти до предела.
Ну да:
- А почему?
- Компьютер так посчитал.
Разумеется, разработчики что-то свое уже оптимизировали, но это совершенно не гарантирует от с овершенно чудовищной организации запросов. Например, мне попадалась реализация, которая на подведение статистики по единственному параметру в базе, содержащей ~1000 объектов, расходовала несколько секунд. Запрос был составлен так, что реализация алгоритма сложностью O(N) составляла O(N^2).
Параметров тут вообще, можно сказать, нет. Режим работы только - полное обновление или инкрементальное. Остальные совершенно служебные, типа уровень отладочных сообщений или переменная для кода возврата.
Ну, для кого-то нет, а для кого-то и есть.
Вполне вероятно, что низкоуровневый анализ может выявить узкое место, связанное с несбалансированностью аппаратной конфигурации. В результате появятся рекомендации, как при помощи незначительной модернизации аппаратного обеспечения можно существенно увеличить общую производительность системы.
Обсудите этот вопрос в Википедии. Если вам удастся преубедить сообщество, то тогда я вами соглашусь.
1. Если текст, содержащийся в Википедии, противоречит некоторым основополагающим принципам, то тем хуже для Википедии. Я надеюсь, здесь нет людей, считающих Википедию истиной в последней инстанции?
2. В приведенных Вами ссылках я не обнаружил противоречий с приведенным мною утверждением. Зато у меня появилось подрзрение в непонимании Вами разницы между понятиями "функциональное устройство" и "устройство из номенклатуры конкретного производителя" вообще и между понятиями "ЦП" и "микросхема" в частности. ЦП может как состоять из некоторого количества микросхем (как это было в не столь далеком прошлом), так и являться частью микросхемы, в которой кроме ЦП есть еще память и периферийные устройства (как это практикуется сегодня).
Но наличие последних в составе микросхемы отнюдь не переносит их в состав ЦП.
Более того, приведенная Вами же цитата именно это и утверждает (выделено мной):
Чаще всего они представлены микроконтроллерами, где, помимо вычислительного устройства, на кристалле расположены дополнительные компоненты (память программ и данных, интерфейсы, порты ввода-вывода, таймеры и др.).
Так как современные CPU не представимы без памяти (хотя бы кеша) и устройств ввода-вывода не борту.
Не путайте ЦП с компьютером. Если современная микросхема содержит компьютер целиком, это еще не значит, что компьютер==ЦП.
надеюсь, здесь нет людей, считающих Википедию истиной в последней инстанции?
По моим наблюдениям википедиков тут хоть отбавляй :(((
Нет, я предлагаю, чтобы вы доказали свое же утверждение : "нет критических мест, которые жрут основной ресурс - не верю" или извинились и признали его ложным.
Нет, я много всего видел, но чтобы кто-то требовал доказательства вопросов веры - вижу впервые!
На этом можно было бы и закончить. Раз вы технические вопросы решаете при помощи веры )))
Одномерный "куб", насколько мне известно, называетсмя отрезком. Двумерный - квадратом, а имеющий 4 и более измерений - гиперкубом. Куб - всегда 3 измерения.
В следющих раз, чтобы не позориться публично, хотя бы погугли бы.
https://ru.wikipedia.org/wiki/OLAP-%D0%BA%D1%83%D0%B1
Я вам результат профилирования высокоуровневого дал.
А именно он здесь и не представляет интереса.
Удивляете. Этот результат хорошо показывает, что в процесс построения куба нет ни одного этапа, занимающего не то что 80, а даже 40% времени.
Ниже уровня SQL никто при оптимизации тут опускаться не будет,
Разумеется, разработчики что-то свое уже оптимизировали
Запрос был составлен так, что реализация алгоритма сложностью O(N) составляла O(N^2).
Сам себе противоричите. Я говорю "ниже уровня запросов", а вы "запрос был составлен так". Об одном и том же получается, об уровне запросов.
Ну, для кого-то нет, а для кого-то и есть.
Это догма или будут аргументы?
Вполне вероятно, что низкоуровневый анализ может выявить узкое место, связанное с несбалансированностью аппаратной конфигурации. В результате появятся рекомендации, как при помощи незначительной модернизации аппаратного обеспечения можно существенно увеличить общую производительность системы.
Очень мало вероятно, так как данные работы уже проводились и нами и клиентом еще в самом начале проекта и вполне на профессиональном уровне.
Поясните, пожалуйста, какую четко заданную изменяюмую последовательность операций (программу) может выполнять настенный выключатель.
настенный выключатель рулит одной булевой переменной - в зависимости от состояния этой переменной что-то включается или выключается.
Обсудите этот вопрос в Википедии. Если вам удастся преубедить сообщество, то тогда я вами соглашусь.
1. Если текст, содержащийся в Википедии
Вы, похоже, меня неправильно проняли. Просто вопросы терминологии, на мой взгляд, явно выходят за рамки не только этой темы, но и всего форума. А для Википедии задача ведения единой терминологии является одной из ключевый. Вот там и обсуждайте, является ли МК ЦП или нет.
2. В приведенных Вами ссылках я не обнаружил противоречий с приведенным мною утверждением.
Утверждалось "ATmega2560 - это не ЦП"
Чаще всего они представлены микроконтроллерами, где, помимо вычислительного устройства, на кристалле расположены дополнительные компоненты (память программ и данных, интерфейсы, порты ввода-вывода, таймеры и др.).
Отсюда делаю вывод, что микроконтроллер есть один из видов процессоров. А вычислительным устройством я как-то всегда считал ALU
Не путайте ЦП с компьютером. Если современная микросхема содержит компьютер целиком, это еще не значит, что компьютер==ЦП.
Не путаю. Так как подобная логическая цепочка нарушает базовое правило логики. Но в частном случае, это возможно. Например, бортовой компьютер моей L200, управляющий двигателем состоит из одного CPU, выполненного в виде микроконтроллера. В случае с ардуино это не так. AVR является CPU, но компьютером можно рассматривать только всю плату ардуино. Что не отменяет того, что в какой-нибудь посудомоечной машине, такой же AVR будет компьютером.
А вообще, предлагаю завязать с этим. Как я рекомендовал выше, если данные моменты терминологии настолько для Вас важны - обсуждайте их в Википедии. А если не важны, то просто не засоряйте форум.
Поясните, пожалуйста, какую четко заданную изменяюмую последовательность операций (программу) может выполнять настенный выключатель.
настенный выключатель рулит одной булевой переменной - в зависимости от состояния этой переменной что-то включается или выключается.
То есть нет изменяемой последовательности операций (программы). Значит не компьютер.
Вот если бы вы завели речь про какой то древний аппарат типа: https://ru.wikipedia.org/wiki/%D0%90%D0%BD%D1%82%D0%B8%D0%BA%D0%B8%D1%82...
То тут уже я возразить бы не смог. Налицо изменяемая последовательность действий, следовательно, это компьютер.
Утверждалось "ATmega2560 - это не ЦП"
Именно так и есть.
Проблема в том, что Выц путаете ЦП как архитектурную единицу с CPU, являющимся конкретным техническим изделием (например, микросхемой). И путаница эта, как выясняется, идет из Википедии: https://ru.wikipedia.org/wiki/%D0%A6%D0%B5%D0%BD%D1%82%D1%80%D0%B0%D0%BB...
которую, Вы собственно, и цитировали. Это как раз тот случай, когда верить Википедии не следует, т.к. в статье содержатся внутренние противоречия. В первой части отождествляется ЦП и CPU, а там, где рассматриваются различные аохитектуры, ЦП явно противопоставляется ОЗУ, т.к. между ними происходит обмен данными. Обратите внмание: обмен данными не внутри процессора, а именно между процессором и ОЗУ, что говорит о том, что ОЗУ никак не может быть частью ЦП.
То есть нет изменяемой последовательности операций (программы). Значит не компьютер.
как же нет, если есть - последовательность включений и выключений уникальна для каждого выключателя и изменяется ползателем выключателя.
То есть нет изменяемой последовательности операций (программы). Значит не компьютер.
как же нет, если есть - последовательность включений и выключений уникальна для каждого выключателя и изменяется ползателем выключателя.
Разве?
Мне всегда казалось, что выключенный выключатель можно только включить, а включенный - выключить. Разве можно включить выключатель 3 раза подряд, потом выключить 7 раз и снова включить?
Если нет - последовательность детерминирована.
Проблема в том, что Выц путаете ЦП как архитектурную единицу с CPU
Повторю. Похоже, вы читаете через абзац или не воспринимаете все с первого раза:
Просто вопросы терминологии, на мой взгляд, явно выходят за рамки не только этой темы, но и всего форума. А для Википедии задача ведения единой терминологии является одной из ключевый. Вот там и обсуждайте, является ли МК ЦП или нет.
То есть нет изменяемой последовательности операций (программы). Значит не компьютер.
как же нет, если есть - последовательность включений и выключений уникальна для каждого выключателя и изменяется ползателем выключателя.
Если ползунок управляется не человеком, а программой и из положения "Выкл" способен сместиться не только на "Вкл" и наоборот - тогда компьютер )
Мне всегда казалось, что выключенный выключатель можно только включить, а включенный - выключить. Разве можно включить выключатель 3 раза подряд, потом выключить 7 раз и снова включить?
а, как иначе может работать компьютер с памятью в один бит?
выключатель можно три раза не включить и семь раз не выключить - тыжепрограммист, должен понимать.
а, как иначе может работать компьютер с памятью в один бит?
Не может. Негде хранить последовательность действий.
а, как иначе может работать компьютер с памятью в один бит?
Не может. Негде хранить последовательность действий.
ок.
а, какой минимальный объём данных должен иметь компьютер?
как должен называться персональный компьютер, если его память ограничить одним битом?
а, как иначе может работать компьютер с памятью в один бит?
Не может. Негде хранить последовательность действий.
Опять у Вас архитектурные проблемы.
Компьютер не обязан иметь фоннеймановскую архитектуоу, следовательно, не обязан хранить программу в памяти.
похоже andriano хочет всех послать на конечные автоматы =) детерминированные и не.
Вот те, что НЕ, это - компьютер.
ВН! День добрый!
Не хотелось бы Вас огорчать неимоверно, но любой недетерминированный конечный автомат может быть перестроен в детерминированный. Это же главная теорема теории автоматов. Если не скучно, то я до сих пор помню доказательство... ;) ;) ;)
Опять у Вас архитектурные проблемы.
Детка, не переходите на личности. Выглядит очень глупо и по детски.
Компьютер не обязан иметь фоннеймановскую архитектуоу, следовательно, не обязан хранить программу в памяти.
Даже лента в машине Тьюринга - тоже память. Не имеет никакого значения, где хранится программа, но без программы компьютер функционировать не может по определению. А если подразумевалось, что 1 бит - это только емкость ALU, а кроме него на шине данных и ROM, и EPROM, и RAM, и I2C, и PCIe и т.п. - то это уже демагогия по определению )
А вообще утреннее шоу - превосходно! Пойду попкорн греть.
ПТР отличился в ЦП, который он нашел на плате ардуино, не содержащей больше ничего.
Андриано отличился в кубе, который у него только трехмерный.
Ждем новых откровений.
Да еще, чтобы вопрос закрыть навсегда.
Напомню, что спорить со мной неприятно и бесполезно, а теория алгоритмов - это один из основных предметов моего образованимя, полученного еще в СССР, на МехМате МГУ.
Так вот настенный выключатель - это бесспорно конечный автомат, самый простой, но формально так.
вот код:
(S0,0,S0)
(S0,1,S1)
(S1,0,S0)
(S1,1,S1)
Где S0 и S1 - состояния (вкл и выкл) - соответственно, а 0 и 1 - входные символы ("нажать вкл" и "нажать выкл"). Входной лентой является память и намерения оператора.
Если кто-то из диспутантов еще помнит, что такое конечный автомат, то признает, что так и есть.
Любой конечный автомат - компьютер, не стоит даже придумывать иную терминологию.
Следовательно, как ни парадоксально, но настенный выключатель - бесспорно компьютер.
ПТР отличился в ЦП, который он нашел на плате ардуино, не содержащей больше ничего.
Промахнулся, я ровно это и писал: "ATmega2560 является ЦП у Arduino Mega 2560". Ну и на плате ардуино еще стабилизатор питания есть, не считая светодиода и разъемов.
http://arduino.ru/forum/apparatnye-voprosy/razgon-arduino#comment-215464
А вот andriano ударился в обсуждение терминологии, совершенно не понятно, что пытаясь доказать. Ведь если я уже пользуюсь не один десяток какой-то устоявшейся терминологией, то из-за кого-то одного ее ведь точно не поменяю )
Понятие CPU, с точки зрения архитектуры у нас совпало, понятие же CPU с точки зрения дискретизации по модулям/IC - нет.
Я бы еще поприкалывался над andriano по поводу CPU в IBM 390, где не только память микропрограмм является составной частью CPU, но даже интерфейс ввода-вывода к сервисному компьютеру, а CPU в IBM 5020 ничем, кроме ввода-вывода не занимается. Но не хочу засорять форум.
Мужики, а может, ... это, ..., как говаривали герои фильма "Особенности национальной рыбалки": "О терминологии мы спорить не будем"? :)))
На форуме еще остались участники, кто пока не успел вам нахамить, оскорбить вас и плюнуть в душу ?
ВН! День добрый!
Не хотелось бы Вас огорчать неимоверно, но любой недетерминированный конечный автомат может быть перестроен в детерминированный. Это же главная теорема теории автоматов. Если не скучно, то я до сих пор помню доказательство... ;) ;) ;)
Приветстую, wdrakula!
Чем же тут меня огорчать? Вполне естественно что компьютер может исполнять функции конечного автомата, а вот наоборот - нет, о чем собственно и была речь.
Любой конечный автомат - компьютер, не стоит даже придумывать иную терминологию.
Следовательно, как ни парадоксально, но настенный выключатель - бесспорно компьютер.
ага. я же не зря поставил под сомнение Капитано Очевидность определения
Компью́тер (англ. computer, МФА: [kəmˈpjuː.tə(ɹ)][1] — «вычислитель») — устройство или система, способное выполнять заданную чётко определённую изменяемую последовательность операций.
сейчас мы пришли к заключению, что и настенный выключатель - компьютер.
ок. а, водопроводный кран, любой другой механизм, любой иной предмет, вселенная в целом или часть её - разве не являются устройством или системой, способными выполнять заданную чётко определённую изменяемую последовательность операций?
какой смысл в определени, которое подразумевает под собой ВСЁ без исключения?
какой смысл в определени, которое подразумевает под собой ВСЁ без исключения?
Это Ваши личные проблемы, если операцию инвертирования Вы искренне считаете изменяемой последовательностью действий.
На форуме еще остались участники, кто пока не успел вам нахамить, оскорбить вас и плюнуть в душу ?
Ни одного хама, отстаивающего свое право хамить и оскорблять участников форума, кроме тебя, еще не попадалось. А что?
Это Ваши личные проблемы, если операцию инвертирования Вы искренне считаете изменяемой последовательностью действий.
неправда - это не проблема и не моя лично. wdrakula, так же со мной согласен.
Входной лентой является память и намерения оператора.
Если оператора считать неотъемлемым компонентом устройства, тогда, безусловно, получается компьютер. Точнее биокомпьютер )
Это Ваши личные проблемы, если операцию инвертирования Вы искренне считаете изменяемой последовательностью действий.
"Детка, не переходите на личности. Выглядит очень глупо и по детски." (c) 2016 by ptr
(c) 2016 by ptr
2 a5021:http://arduino.ru/forum/apparatnye-voprosy/vybor-tranzistorov-dlya-kommutatsii-toka-2-3a-pri-napryazhenii-12-volt-svet?page=3#comment-215701