Рубрика «оптимизация» - 32

Введение
Понимание, каким образом программная переменная принимает значение физического сигнала и как значение программной величины превращается в конкретный сигнал, может помочь разработчикам программного обеспечения систем управления при расчете задержек, решении задач оптимизации, обеспечении устойчивости, разработке интерфейсов и подключении к процессорам и контроллерам периферии: датчиков, исполнительных механизмов, и др.
В этой работе рассматриваются вопросы, связанные с прямым и обратным преобразованием “программная переменная – сигнал”: особенности построения каналов передачи данных, подключения периферии к шинам процессора, вопросы адресной приёма-передачи данных и работа гипотетического процессора при обмене данными с внешним устройством.

Формирование канала передачи данных
Рассмотрим канал передачи данных, который имеет всего два состояния, например, наличие или отсутствие напряжения. Передатчик должен устанавливать напряжении в линии в соответствии с передаваемыми данными, а приемник по измеряемому напряжению выделять данные линии. Простейший передатчик включает источник напряжения и идеальный ключ, который изменением собственного сопротивления (ноль или бесконечность) замыкает или размыкает провода. В качестве идеального приемника используется измеритель напряжения (мультиметр) с бесконечным входным сопротивлением.
image
Рис. 1. Схема с неопределенным напряжением в линии передачи. В реальной схеме функцию ключа может выполнять транзистор.

В схеме Рис. 1 при замыкании ключа приёмнику передается 5В источника, однако, когда ключ разомкнут на входе приемника находится неопределенное напряжение.
Этой неопределенности нет в схеме Рис. 2, которая имеет два устойчивых состояния 5В или 0В. Сопротивление R добавлено в схему передатчика для ограничения тока через замкнутый ключ. Переходный процесс в линии пропорционален произведению ёмкости линии на выходное сопротивление передатчика, которое отличается при установлении и сбросе напряжения в линии. При установке напряжения в линии происходит заряд ёмкости через сопротивление R. Во время сброса напряжения ёмкость разряжается через сопротивление замкнутого ключа.
image
Рис. 2. Передача двух состояний 5В и 0В. Тождественные схемы. Постоянная времени (R*C) перехода из 0В в 5В (заряда емкости) больше постоянной разряда линии через идеальный ключ с нулевым сопротивлением.
Читать полностью »

Благодаря некоторым новым возможностям, доступным в Intel VTune Amplifier 2016 Update 1, в настоящее время сравнительно просто организовать одновременный анализ энергопотребления и производительности Android-устройств без необходимости их постоянного соединения с компьютером по USB.

Одновременный анализ энергопотребления-производительности Android-устройств с помощью Intel VTune Amplifier и SoC Watch - 1


Стоит отметить, что, хотя можно подключить Android-устройство к компьютеру по схеме «ADB over WiFi», и, таким образом избежать необходимости использования опции анализа отключённого устройства, обычно проще подключить целевое устройство по USB. Если вы вместо этого хотите использовать WiFi, можете найти инструкции по настройке этой схемы в документации к Intel VTune Amplifier.
Читать полностью »

Привет всем!

У меня есть одно хобби – я очень люблю изобретать велосипеды.
Об изобретении одного такого велосипеда хочу вам сегодня рассказать.

Сортировка массива данных – задача, которой далеко уже не первый год. Она преследует нас с первых курсов технических вузов, а кому особенно повезло, то и со школьной скамьи. Обычно это методы сортировки “пузырьком”, “делением”, “быстрая”, “вставками” и прочие.

Сортировка пузырьком
Вот, к примеру, подобной реализации метода сортировки “пузырьком” меня учили в одной крупной IT-компании. Этот метод использовался матёрыми программистами там повсеместно.

Так вот, мне всегда было интересно, почему уделяется так мало внимания методам сортировки без сравнения (поразрядная, блочная и т.п.). Ведь подобные методы относятся к классу быстрых алгоритмов, выполняются за О(N) количество перестановок и при удачно подобранных данных могут выполняться за линейное время.Читать полностью »

В этой небольшой статье я хочу поделиться с вами опытом, как программно оптимизировать производительность приложения Андроид за 5 простых шагов на примере создания цифровой версии игры «Корона Эмбера».

До создания серьезных приложения со сложной структурой View и Layout'ов мы особо не задумывались над тем, как простые и логичные действия в стиле «смотрите, я набросал дизайн из лэйаутов» могут серьезно замедлить работу всей программы.

Помимо прочего, задача с «Короной Эмбера» осложнялась еще и тем, что игра, которую мы задумали перенести на Андроид платформу, была сама по себе достаточно насыщенной различными компонентами, которые как-то надо было умещать на игровом поле или рядом с ним.

В статье я собрал наш успешный опыт и облёк его в удобную и читабельную форму, полезную для тех, кто все еще гуглит «как программно оптимизировать приложение под Андроид» или «почему мое приложение лагает».
Читать полностью »

Кейс Pyrus: Как Максим Нальский ищет и находит лучшие решения - 1
Фотография: Михаил Голденков/«Секрет Фирмы»

Москва, 15 минут пешком от станции метро «Сокол». По дороге попадаю в обстановку, нереальность которой ощущается во всём — уже после становится ясно, что мы находимся посреди памятника архитектуры. Максим выводит меня на балкон единственного четырёхэтажного здания, говорит, что летом здесь куда симпатичнее — вокруг, куда ни посмотри, двухэтажные коттеджи.

Принимая приглашение Максима Нальского к разговору, я и представить не мог, что это выльется в такое глобальное обсуждение. Предлагаю, пользуясь случаем, всем читателям «Мегамозга» почерпнуть немного экспертизы человека, всю свою жизнь с удовольствием создающего B2B-продукты.

— Максим, что такое Pyrus? EPR/CRM? Или это продукт, выросший из необходимости некоторым образом оптимизировать собственные процессы?

Третий ответ, наверное, самый правильный.

Есть много «ключевых слов»: ERP, CRM, SCM, MRP и прочих разных, всё это некоторые способы ориентироваться в корпоративных системах.

Pyrus — это система для организации работы, рабочих процессов. Например, у вас в компании есть какой-то процесс. Скажем, согласование счетов. В организацию каждый день приходит 100 счетов на оплату. Чтобы оплата прошла, каждый из них должны подписать четыре-шесть человек. Причем, айтишные документы подписывает один человек, закупки – третий, аренду — четвёртый. Финансовый директор хочет видеть лишь то, что превышает 500 000 рублей, а генеральный — больше миллиона.

Вы пишете некоторую инструкцию, как это должно происходить в вашей компании, но это не слишком удобно. Исполняя инструкцию, человек может ошибиться, поэтому вы ищете специализированный софт, оптимизирующий процесс.
Читать полностью »

uDev tech events: Харьков, 30 марта - 1
Читать полностью »

image

В нашем блоге мы много пишем о создании email-рассылок и работе с электронной почтой. Мы уже обсудили сложности борьбы со спамом, будущее email, вопросы защиты почтовой переписки, а создание email-автоответов от служб поддержки.

Сегодня мы продолжим тему оптимизации процесса общения по электронной почте и дадим несколько советов о том, как правильно составлять email-сообщения для ИТ-специалистов.Читать полностью »

Вступление

Появилась необходимость обмениваться сообщениями между сервером и клиентом в бинарном виде, но в формате JSON в конечном итоге. Начал я гуглить, какие существуют библиотеки упаковки в бинарный вид. Пересмотрел немало: MesssagePack, Bson, protobuf, capnproto.org и другие. Но эти все библиотеки позволяют паковать и распаковывать готовые бинарные пакеты. Не очень копался, возможно ли делать парсер входящего трафика по кускам. Но суть не в этом. С такой задачей никогда не сталкивался и решил поиграться с нодой и сделать свой. Куда же без костылей и велосипедов? И вот с какими особенностями Node.js я столкнулся…
Читать полностью »

image

Сегодня я хочу вам рассказать об алгоритмах подсчёта количества палиндромов в строке: для чего это нужно, где применяется, как это быстро сделать, какие подводные камни нас ожидают и многое другое. Рассмотрим различные способы для решения данной задачи, выясним плюсы и минусы каждого способа. Эта статья будет обзорной: если я что-то не описываю здесь, то постараюсь всегда дать вам набор ссылок, где всё подробно описано и расписано. Надеюсь, что материал будет интересен как новичкам в сфере алгоритмов, так и матёрым программистам. Что же, если я смог заинтересовать вас, то прошу под кат!
Читать полностью »

Нарезка приложения – это новая фича, которая появилась в iOS и tvOS версии 9.0. Теперь разработчики могут загружать на App Store несколько вариантов ресурсов для разных типов устройств. Это существенно уменьшает размер приложения, поскольку пользователь загружает пакет данных только для своего конкретного устройства.

Нарезка ресурсов – путь к оптимизации размера iOS-приложений - 1
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js