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, где он описывает оптимизацию, выполненную на одной строке +
конкатенации подробным способом.
Два интересных фрагмента из FAQ GNU :
Я бы хотел лицензировать свой код под GPL, но я также хотел бы прояснить, что он нельзя использовать в военных и / или коммерческих целях. Могу я это сделать?
Нет, потому что эти две цели противоречат друг другу. В GNU GPL разработана специально для предотвратить добавление дополнительных ограничения. GPLv3 позволяет очень их ограниченный набор, в разделе 7, но любое другое добавленное ограничение может быть удалено пользователем.
Могу ли я изменить GPL и сделать измененную лицензию?
Вы можете использовать GPL условия (возможно, измененные) в другом лицензия при условии, что вы позвоните своему лицензию на другое имя и не включить преамбулу GPL и вы изменяете инструкции по применению на конец достаточно, чтобы сделать это ясно отличается по формулировке и не упоминается GNU (хотя саму процедуру вы description может быть похожим).
…
Они изменили GPL недопустимым способом.
Из GPL:
7. Дополнительные условия.
«Дополнительные разрешения» - это условия, дополняющие условия данной Лицензии, сделав исключения из одного или нескольких условия.
…
Все прочие недопустимые дополнительные термины считаются «далее ограничения »по смыслу раздел 10. Если программа как вы получил его или любую его часть, содержит уведомление о том, что это регулируется настоящей Лицензией вместе с термин, который является дополнительным ограничением, вы можете удалить этот термин.
…
Похоже, вам разрешено удалить эту часть лицензии, , но нет никакого способа обойтись без юриста .
Раздел 6 здесь не применяется: он обращается к пользователю / дистрибьютору кода + лицензия ( лицензиат ), а не к тому, кто создал код и предоставил лицензию:
Вы не имеете права налагать какие-либо дополнительные ограничения на осуществление получателями прав, предоставленных здесь.
и
Каждый лицензиат рассматривается как « вы ».
(курсив моя.)
Я не знаю, имеет ли такое положение какое-либо действие, но я не понимаю, почему владельцы авторских прав не могли взять существующую лицензию и добавить к ней свои собственные положения. Конечно, это больше не GPL, но это все еще лицензия с ограничениями, которые идут дальше тех, что указаны в GPL.
Вы не имеете права налагать какие-либо дополнительные ограничения на осуществление получателями прав, предоставленных здесь.
и
Каждый лицензиат рассматривается как « вы ».
( курсив мой.)
Я не знаю, имеет ли такое положение какое-либо действие, но я не понимаю, почему правообладатели не могут взять существующую лицензию и добавить к ней свои собственные положения. Конечно, это больше не GPL, но это все еще лицензия с ограничениями, которые идут дальше тех, что указаны в GPL.
Вы не имеете права налагать какие-либо дополнительные ограничения на осуществление получателями прав, предоставленных здесь.
и
Каждый лицензиат рассматривается как « вы ».
( курсив мой.)
Я не знаю, имеет ли такое положение какое-либо действие, но я не понимаю, почему правообладатели не могут взять существующую лицензию и добавить к ней свои собственные положения. Конечно, это больше не GPL, но это все еще лицензия с ограничениями, которые идут дальше тех, что указаны в GPL.
)Я не знаю, действует ли такой пункт, но я не понимаю, почему владельцы авторских прав не могли взять существующую лицензию и добавить к ней свои собственные пункты. Конечно, это больше не GPL, но это все еще лицензия с ограничениями, которые идут дальше тех, что указаны в GPL.
)Я не знаю, действует ли такой пункт, но я не понимаю, почему владельцы авторских прав не могли взять существующую лицензию и добавить к ней свои собственные пункты. Конечно, это больше не GPL, но это все еще лицензия с ограничениями, которые идут дальше тех, что указаны в GPL.
Если лицензия недействительна, как говорят некоторые, вы вообще не имеете права использовать код. Лицензия дает вам права, которых в противном случае вы не имели бы. Это авторский код; вы используете его так, как диктует автор, или не используете его совсем.
Я бы сказал, что код доступен под не совсем FOSS лицензией, производной от GPL. Это не код GPL.
Отменяет ли возможность применения любой более поздней версии GPL это ограничение - хороший вопрос, для ответа на который вам потребуется юрист. Однако я думаю, что использование этого кода в военных целях, даже если оно законно, было бы несколько невежливым.
Автор может (вероятно) предоставить любые права, какие пожелает. Однако «GPL с ограничениями» не является GPL, поэтому, если они ссылаются на какой-либо код GPL, их код должен быть лицензирован как под «GPL с ограничениями», так и под GPL, чтобы вы могли безопасно использовать лицензию GPL. Однако, если они не делают ничего, что требует, чтобы код был выпущен под GPL, они, вероятно, могут приложить к нему любое разумное лицензионное соглашение, которое они захотят.