Нет никакой строгой причины, почему основанный на байт-коде язык как C# или Java, который имеет JIT, не может быть с такой скоростью, как код C++. Однако код C++ раньше был значительно быстрее в течение долгого времени, и также сегодня все еще во многих случаях. Это происходит главным образом из-за более усовершенствованной оптимизации JIT, сложной для реализации, и действительно прохладные только прибывают сейчас.
, Таким образом, C++ быстрее, во многих случаях. Но это - только часть ответа. Случаи, где C++ на самом деле быстрее, являются высоко оптимизированными программами, где опытные программисты полностью оптимизировали ад из кода. Это не является только очень трудоемким (и таким образом дорогим), но также и обычно приводит к ошибкам из-за сверхоптимизации.
, С другой стороны, код на интерпретируемых языках становится быстрее в более поздних версиях времени выполнения (CLR.NET или Java VM) без Вас делающий что-либо. И существует много полезных JIT-компиляторов оптимизации, может сделать, которые просто невозможны на языках с указателями. Кроме того, некоторые утверждают, что сборка "мусора" должна обычно быть настолько же быстрой или быстрее как ручное управление памятью, и во многих случаях это. Можно обычно реализовывать и достигать всего этого в C++ или C, но это будет намного более сложным и подверженным ошибкам.
, Поскольку Donald Knuth сказал, "преждевременная оптимизация является корнем всего зла". Если Вы действительно знаете наверняка, что Ваше приложение будет главным образом состоять из очень производительности критическая арифметика, и что это будет узкое место, и это, конечно, будет быстрее в C++, и Вы уверены, что C++ не будет конфликтовать с Вашими другими требованиями, пойдите для C++. В любом другом случае концентрат при первом реализовывании Вашего приложения правильно на любом языке подходит Вам лучше всего, затем найдите узкие места производительности, если это работает слишком медленный, и затем думайте о том, как оптимизировать код. В худшем случае Вы, возможно, должны были бы обратиться к коду C через внешний функциональный интерфейс, таким образом, у Вас все еще будет способность записать критические части на более низком языке уровня.
Имеют в виду, что относительно легко оптимизировать корректную программу, но намного тяжелее исправить оптимизированную программу.
Предоставление фактических процентов преимуществ скорости невозможно, оно в основном зависит от Вашего кода. Во многих случаях реализация языка программирования не является даже узким местом. Возьмите сравнительные тесты в http://benchmarksgame.alioth.debian.org/ с большим скептицизмом, поскольку они в основном тестируют арифметический код, который наиболее вероятен не подобный Вашему коду вообще.
вам нужно поставить запятую между двумя разными значениями. Например:
UPDATE orders
SET listPrice = 0
, bloggerPrice = 0.00
, customerPrice = 0.00
WHERE orders.id =245745
Не хватает запятой:
UPDATE orders SET
listPrice = 0,
bloggerPrice = 0.00,
customerPrice = 0.00
WHERE
orders.id = 245745
Попробуйте:
UPDATE orders
SET listprice=0, bloggerPrice=0.00, customerPrice=0.00
WHERE id=245745