pip install configparser
sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py
Затем попробуйте снова установить MYSQL-python. Это работало для меня
StringBuilder.Append()
метод намного лучше, чем использование + оператор. Но я нашел, что, при выполнении 1 000 конкатенаций или меньше, String.Join()
еще более эффективно, чем StringBuilder
.
StringBuilder sb = new StringBuilder();
sb.Append(someString);
единственная проблема с String.Join
состоит в том, что необходимо связать строки с общим разделителем. (Редактирование:) как @ryanversaw указанный, можно сделать строку разделителя. Пустой.
string key = String.Join("_", new String[]
{ "Customers_Contacts", customerID, database, SessionID });
Это зависело бы от кода. StringBuilder обычно более эффективен, но если Вы только свяжете несколько строк и сделаете все это в одной строке, оптимизация кода будет, вероятно, заботиться о нем для Вас. Важно думать о том, как код смотрит также: для больших наборов StringBuilder облегчит читать для маленьких, StringBuilder просто добавит бесполезную помеху.
Всего для двух строк Вы определенно не хотите использовать StringBuilder. Существует некоторый порог, выше которого StringBuilder наверху является меньше, чем издержки выделения нескольких строк.
Так, для больше, что 2-3 строки, использование код DannySmurf . Иначе просто используйте + оператор.
Самое эффективное должно использовать StringBuilder, как так:
StringBuilder sb = new StringBuilder();
sb.Append("string1");
sb.Append("string2");
...etc...
String strResult = sb.ToString();
@jonezy: Строка. Concat прекрасен, если у Вас есть несколько мелочей. Но если Вы свяжете мегабайты данных, Ваша программа, вероятно, заправит.
От этого статья MSDN:
существуют немного служебные связаны с созданием объекта StringBuilder, и вовремя и память. На машине с быстродействующей памятью StringBuilder становится стоящим при выполнении приблизительно пяти операций. Как показывает опыт, я сказал бы, что 10 или больше строковых операций являются выравниванием для издержек на любой машине, даже более медленная.
Поэтому, если Вы доверяете, MSDN идет с StringBuilder, если необходимо сделать больше чем 10 строковых операций/конкатенаций - в других отношениях простая строка concat с '+' прекрасна.
Если Вы действуете в цикле, StringBuilder является, вероятно, способом пойти; это сохраняет Вас издержки создания новых строк регулярно. В коде это будет только работать однажды, тем не менее, Строка. Concat прекрасен, вероятно.
Однако Rico Mariani (гуру оптимизации.NET) составил тест , в котором он заявил в конце, что в большинстве случаев рекомендует Строку. Формат.
От Chinh Делают - StringBuilder не всегда быстрее :
Эмпирические правила
При конкатенации трех динамических строковых значений или меньше, используйте традиционную конкатенацию строк.
При конкатенации больше чем трех динамических строковых значений, используйте StringBuilder.
При создании большой строки из нескольких строковых литералов, используйте или строковый литерал или встроенное + оператор.
Большинство из времени StringBuilder является Вашим лучшим выбором, но существуют случаи как показано в том сообщении, что необходимо, по крайней мере, думать о каждой ситуации.
Rico Mariani , гуру Производительности.NET, имел статья об этом очень подвергающемся. Это не столь просто, как можно было бы подозревать. Основной совет - это:
, Если Ваш шаблон похож:
x = f1(...) + f2(...) + f3(...) + f4(...)
это - один concat, и это быстро, StringBuilder, вероятно, не поможет.
, Если Ваш шаблон похож:
if (...) x += f1(...)
if (...) x += f2(...)
if (...) x += f3(...)
if (...) x += f4(...)
тогда Вы, вероятно, хотите StringBuilder.
еще одна статья для поддержки этого заявления появляется от Eric Lippert, где он описывает оптимизацию, выполненную на одной строке +
конкатенации подробным способом.