На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
Модераторы: JoeUser, Qraizer
Страницы: (14) « Первая ... 12 13 [14]  все  ( Перейти к последнему сообщению )  
> SObjectizer 5.3.0
    Обновилась серия презентаций Dive into SObjectizer-5.5, которая выполняет плавное погружение пользователя в возможности и особенности SObjectizer-а. Теперь все части описывают самую последнюю стабильную версию -- 5.5.15.

    Серьезно была переработана самая первая часть, написанная почти год назад. Лишнее украшательство выброшено, примеры чуток упрощены. Вроде бы получилось более-менее неплохо -- основные моменты объяснены и показаны на очень простых примерах.

    На данный момент в серию входит семь презентаций:Еще парочка (про диспетчеры и mchain-ы), надеюсь, появится в ближайшие две-три недели.
        Создана тема для сбора хотелок для следующей версии SObjectizer: Version 5.5.16 Wish List.

        Предположительно, она будет выпущена в марте или в апреле 2016. Сроки выхода зависят от объема и сложности нововведений. А повлиять на этот объем/сложность можно оставив свою хотелку в обсуждении по ссылке или прямо здесь.
          Еще один маленький примерчик: Конкурентный HelloWorld на Go и на C++.
            Цитата eao197 @
            Еще один маленький примерчик: Конкурентный HelloWorld на Go и на C++.

            :facepalm: кто так пишет? Ничего, что между print("hello ") и println("world!") какой-нибудь другой поток может вставить свой print?

            ExpandedWrap disabled
              package main
               
              import "fmt"
               
              func main() {
                  sayHello := make(chan string)
                  messages := make(chan string)
                  done     := make(chan string)
                  
                  go func() {
                      for i := 0; i < 10; i++ {
                          sayHello <- "Hello"
                      }
                      close(sayHello)
                  }()
                  go func() {
                      for hello := range sayHello {
                          messages <- hello + " World!"
                      }
                      close(messages)
                  }()
                  go func() {
                      i := 0
                      for msg := range messages {
                          fmt.Println(fmt.Sprintf("%d. %s", i, msg))
                          i++
                      }
                      done <- "Done"
                  }()
                  <-done
              }


            http://play.golang.org/p/57HuG9jgt8
            “Object-oriented design is the roman numerals of computing.” — Rob Pike
            All software sucks
              Цитата korvin @
              Ничего, что между print("hello ") и println("world!") какой-нибудь другой поток может вставить свой print?
              В данном примере это не страшно, так как никаких других потоков просто нет.
              Другое дело, что использовать каналы всего лишь для синхронизации потоков, пожалуй, слишком расточительно.
              Всё написанное выше это всего лишь моё мнение, возможно ошибочное.
                Цитата korvin @
                кто так пишет? Ничего, что между print("hello ") и println("world!") какой-нибудь другой поток может вставить свой print?


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

                Во-вторых, как раз в данном примере никто не должен вставлять свои принты между hello и world. Это типа демонстрация детерминированной передачи управления между рабочими потоками посредством каналов.
                  Выпущена версия 5.5.15.2 с поддержкой Android-а (поддержка реализована на основе CrystaX NDK).
                    Цитата eao197 @
                    Выпущена версия 5.5.15.2 с поддержкой Android-а (поддержка реализована на основе CrystaX NDK).

                    А на стандартном NDK почему не собирается?
                      Цитата MyNameIsIgor @
                      А на стандартном NDK почему не собирается?


                      SO-5 был портирован под Андроид силами команды CrystaX NDK, целью которых является насыщение CrystaX NDK полезным для них софтом. Сам CrystaX NDK появился как следствие недостатков родного NDK из-за которых нормальная разработка под Android на С++ обходится слишком дорого. Подробнее об этом написано на сайте проекта CrystaX NDK.
                        Цитата eao197 @
                        Сам CrystaX NDK появился как следствие недостатков родного NDK из-за которых нормальная разработка под Android на С++ обходится слишком дорого. Подробнее об этом написано на сайте проекта CrystaX NDK.

                        Я как бы в курсе. Но многое, из-за чего изначально появился CrystaX NDK, было исправлено в оригинальном NDK. И вот прямо сейчас нам вовсе не дорого обходится единая кодовая база для Windows/Linux/Mac/Android.
                        CrystaX NDK, насколько мне известно, и сейчас, после всех улучшений оригинального NDK, более продвинутый. Потому я и спрашиваю: что такого вы используете в коде SO, что вам понадобился CrystaX? Вы вообще пробовали собирать SO оригинальным NDK?
                        Цитата eao197 @
                        SO-5 был портирован под Андроид силами команды CrystaX NDK

                        Что же они там изменяли для портирования?
                        Цитата eao197 @
                        целью которых является насыщение CrystaX NDK полезным для них софтом

                        Странно как-то... NDK нужен для разработчика. Какие библиотеки им собирать, решать разработчику. Зачем насыщать NDK каким-то софтом? Кому надо, тот соберёт.
                        Сообщение отредактировано: MyNameIsIgor -
                          Цитата MyNameIsIgor @
                          Потому я и спрашиваю: что такого вы используете в коде SO, что вам понадобился CrystaX?

                          Еще раз: это не нам потребовался CrystaX NDK, это разработчики CrystaX NDK заинтересовались портированием SO под Android. И сделали этот порт под свой NDK.

                          Сам SO-5 не использует ничего за пределами стандартной библиотеки C++11.

                          Цитата MyNameIsIgor @
                          Вы вообще пробовали собирать SO оригинальным NDK.

                          Нет. Основной команде SO-5 надобности в поддержке платформы Android не было до сих пор.

                          Цитата MyNameIsIgor @
                          Что же они там изменяли для портирования?

                          Были поправлены CMake-овские проектные файлы под особенности кросс-платформенной сборки. Так же были увеличены тайм-ауты в ряде юнит-тестов, чтобы тестовые сценарии успевали отрабатывать на слабых процессорах и на эмуляторах.

                          В самом SO-5 ничего не исправлялось.

                          Цитата MyNameIsIgor @
                          Странно как-то... NDK нужен для разработчика.

                          Разработчики CrystaX NDK решают свою задачи. Как я понимаю, им нужно простота разработки под Android, поэтому они и сделали свой NDK и на основе этого NDK портировали на Android тот же Boost. Потому что им нужен Boost. Может им и SO-5 для чего-то понадобился. Вот они и его решили портировать. Заодно реализовав поддержку CMake в своем NDK.
                            Цитата eao197 @
                            Еще раз: это не нам потребовался CrystaX NDK, это разработчики CrystaX NDK заинтересовались портированием SO под Android

                            Ok
                              Мы провели сравнение производительности SO-5.5.15 и CAF-0.14.4. Вкратце результаты такие: операции создания/удаления агентов в SO-5 медленнее, отсылка и доставка сообщений в SO-5 быстрее.

                              Плюс объяснение, почему в SO-5 создание/удаление агентов обходится дороже, чем в других инструментах.
                              1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                              0 пользователей:


                              Рейтинг@Mail.ru
                              [ Script Execution time: 0,1283 ]   [ 17 queries used ]   [ Generated: 6.12.19, 00:07 GMT ]