Эх, я поначалу подумал, вы написали некую обертку, которая позволяет удобно использовать стек текущего треда. А отдельный тред создавать, — это читерство ;)
ЗЫ вообще, afaik, функциональный стиль часто подразумевает агрессивное использование рекурсии, и как следствие — стека, как места для хранения данных, только делается это не явно, так что возможно вы пытаетесь изобрести велосипед
Гм, ну если машина в течении 1 часа проехала 88км, то потребленная энергия мощность будет 15кВт*4, т.к. за 4 часа езды 60кВт*ч батарейка разряжается в ноль. Делить на 10 тут не нужно вовсе, — либо машина едет со скоростью 88кмч, и потребляет 15кВт, либо не едет, и ничего не потребляет. Дальше уже надо смотреть по конкретным потребностям по пробегу. Например я в день проезжаю буквально 6 км, т.к. живу в паре км от работы, а за год, с учетом всех дальних поездок, у меня выходит около 4-5 тысяч км, пусть 5000км, для ровного счета, тогда время в дороге суммарное — 5000/88 =~ 56.8 часов, суммарная электроэнергия потребляемая за год при таком расходе — 56.8 ч * 15кВт = 852.3 кВт*ч, что имхо вполне укладывается в нормы потребления, — у меня за месяц счет за электричество сейчас набегает на 200-250 кВт*ч, так что если просто буду поэкономнее дома расходовать электроэнергию, то хватит и на автомобиль, ему выходит нужно около 71 кВт*ч в месяц. Мне правда выгоднее будет взять MiEV :)
Обьясните пожалуйста, как вы перешли от 15 кВт к 1.5 кВт? По мне, выходит что средняя потребляемая мощность Tesla-ы — 15 kW. С учетом того, что на седаны подобного размера обычно ставят двигатели от 200лс (150kW), то получается в случае с теслой ваша оценка в 1/10 макс мощности как раз выходит очень точной.
Наверное куда правильнее будет взять данные по существующим серийным электромобилям, и посмотреть их энергопотребление. Например про Mitsubishi i-MiEV (он-же Peugeot iON) известно ( en.wikipedia.org/wiki/Mitsubishi_i-MiEV#Range ) что версия с 16kWh батареей обеспечивает средний пробег в 180км. Грубо говоря, средняя скорость по городу — 30кмч, т.е. 180кмч проходятся за 6 часов, следовательно средняя затрачиваемая мощность — 16kWh / 6h = 2.66 kW, что заметно меньше, почти на порядок, чем 1/10 от 100kWh.
Автомобиль имея двигатель мощностью в 100кВт, очень редко использует двигатель на 100% мощности, — это случается только при максимально интенсивном разгоне («педаль в пол»), или при движении на максимальной скорости. При обычной езде по городу, двигатель в среднем, вряд-ли используется даже на 1/20 своей максимальной мощности (если речь о 100кВт двигателе), так что как минимум на 1 порядок меньше оценка будет.
Так-же если учесть, что электрокар может применять технологии рекупирования, при торможении, плюс исходно имеет в 2 раза больший кпд, можно натянуть еще на 1 порядок.
Обидно, что проживающие за пределами РФ не могут зарегистрироваться. Мы как-ни как тоже граждане. (Вариант через почту не прокатит, т.к. там физически невозможно указать адрес за пределами РФ)
Я не говорю что они совсем вот идентичны. Мой изначальный комментарий был про то, что не надо смешивать C и C++ строки, std::string куда ближе к C# строкам чем к C строкам.
Про то, как делает ms — извините, мало в курсе, т.к. большая часть опыта связана с не-windows платформами.
std::string (точнее говоря std::basic_string) так-же как и C#-ные «basic string» хранит помимо буффера строки, еще и размер, так-же позволяет нулевые символы посредине строки, так-же держит нулевой символ в конце буффера, не смотря на то, что самому классу он не нужен, но держит для совместимости со старыми C-API (т.е. по сути — ради c_str()). А различия представления строки только в том, что размер строки хранится не в нескольких байтах перед самой строкой, а отдельным полем класса std::basic_string
Более существенные отличия от C# в том, что std::string — mutable, и по этому реализует (на ряде платформ) такие фишки как например copy-on-write копирование строк, которые в C# просто не нужны.
И еще вы зря смешали в одну кучу и С и С++ в исходном примере. Я думаю внутренняя реализация std::string куда ближе по внутреннему устройству к " basic string", хотя и с рядом существенных отличий.
Только вы забываете, что OS/2 не умерла, а развилась в Windows NT, которая в последствии стала основой всех серверных и десктопных ОС от Microsoft. Цитата с википедии:
Microsoft decided to create a portable operating system, compatible with OS/2 and POSIX and supporting multiprocessing, in October 1988.[13] When development started in November 1989, Windows NT was to be known as OS/2 3.0,[14] the third version of the operating system developed jointly by Microsoft and IBM. To ensure portability, initial development was targeted at the Intel i860XR RISC processor, switching to the MIPS R3000 in late 1989, and then the Intel i386 in 1990.[15] Microsoft also continued parallel development of the DOS-based and less resource-demanding Windows environment, resulting in the release of Windows 3.0 in May 1990. Windows 3 was eventually so successful that Microsoft decided to change the primary application programming interface for the still unreleased NT OS/2 (as it was then known) from an extended OS/2 API to an extended Windows API. This decision caused tension between Microsoft and IBM and the collaboration ultimately fell apart. IBM continued OS/2 development alone while Microsoft continued work on the newly renamed Windows NT. Though neither operating system would immediately be as popular as Microsoft's MS-DOS or Windows products, Windows NT would eventually be far more successful than OS/2.
Я сам тоже давно не пользовался оригинальной оболочкой от abbyy, пользуюсь GoldenDict, т.к. он просто на порядки быстрее. Но сами словари то все равно купить надо было.
Хотелось-бы верить, что offline google translate будет переводить 1-в-1 так-же, как online версия. А если так — то словари там очень даже полные. abbyy словари у меня как раз полной самой версии, т.к. в базовых пакетах отсутствует очень много слов, причем не каких-то заумных, а обычных, бытовых, встречающихся в повседневной жизни (недавно переехал в англо-язычную страну).
P.S. Впрочем словари лингво, как словари, все-же полнее чем гугловский перевод. Переводчик удобен тем, что порой целую фразу легко переводит, не нужно подбирать варианты перевода слов из десятка возможных переводом :)
Отличная новость. В свое время серьезно раскошелился на словари от abbyy, только что-бы всегда с собой был полноценный словарь доступный в offline, теперь потребности в них будет меньше :)
Продолжая рассуждения дальше, имхо не будет особой разницы, если сделать не lock-free код, но код использующий спин-локи, и максимально минимизирующий время пребывания в локе потоком, используя схемы доступа аналогичные первому «глючному» коду. Мне кажется используя спинлоки, можно достичь той-же производительности, и иметь при этом куда меньше проблем, т.к. со спин локом не составит труда например сделать:
время, в течении которого тут будет удерживаться лок — это буквально время исполнения нескольких ассемблерных инструкций, сравнимо с оверхедом от lock-free кода.
P.S. Возможно просто стек — не очень удачный пример структуры данных, на которой получается большой выйгрыш от lock-free
Это видимо будет уже не lock-free, т.к. подобная метка — это по сути уже самодельный мьютекс (точнее спинлок, т.к. не зависит от ядра), причем рекурсивный ;)
У Evernote на данный момент куча фич, которых нет в keeper:
* e-mail адреса, отправляя сообщение на которое, оно попадает автоматом в заметки
* «каталоги», т.к. можно создать много записных книжек, в том числе вложенных, и отсортировать заметки по каталогам
* OCR обработка фото-заметок, и последующий поиск текста в картинках (возможно в гугле это уже есть, но явно это не указано)
* Готовые клиенты под кучу разных платформ
Это все вполне реализуемо, как мне кажется, и если будет спрос, гугл все это быстро сделает. А вот чего очень не хватает evernote — это более защищенные, чем простой пароль, механизмы аутентификации. Т.к. в заметках часто хранится личная информация, это существенное упущение, и тут гугл выигрывает.
ЗЫ вообще, afaik, функциональный стиль часто подразумевает агрессивное использование рекурсии, и как следствие — стека, как места для хранения данных, только делается это не явно, так что возможно вы пытаетесь изобрести велосипед
Так-же если учесть, что электрокар может применять технологии рекупирования, при торможении, плюс исходно имеет в 2 раза больший кпд, можно натянуть еще на 1 порядок.
Про то, как делает ms — извините, мало в курсе, т.к. большая часть опыта связана с не-windows платформами.
Более существенные отличия от C# в том, что std::string — mutable, и по этому реализует (на ряде платформ) такие фишки как например copy-on-write копирование строк, которые в C# просто не нужны.
P.S. Впрочем словари лингво, как словари, все-же полнее чем гугловский перевод. Переводчик удобен тем, что порой целую фразу легко переводит, не нужно подбирать варианты перевода слов из десятка возможных переводом :)
время, в течении которого тут будет удерживаться лок — это буквально время исполнения нескольких ассемблерных инструкций, сравнимо с оверхедом от lock-free кода.
P.S. Возможно просто стек — не очень удачный пример структуры данных, на которой получается большой выйгрыш от lock-free
* e-mail адреса, отправляя сообщение на которое, оно попадает автоматом в заметки
* «каталоги», т.к. можно создать много записных книжек, в том числе вложенных, и отсортировать заметки по каталогам
* OCR обработка фото-заметок, и последующий поиск текста в картинках (возможно в гугле это уже есть, но явно это не указано)
* Готовые клиенты под кучу разных платформ
Это все вполне реализуемо, как мне кажется, и если будет спрос, гугл все это быстро сделает. А вот чего очень не хватает evernote — это более защищенные, чем простой пароль, механизмы аутентификации. Т.к. в заметках часто хранится личная информация, это существенное упущение, и тут гугл выигрывает.