- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
$rsAnswers = CFormAnswer::GetList( $QUESTION_ID, $by="s_id", $order="desc", $arFilter, $is_filtered );
$z = 0;
while ($arAnswer = $rsAnswers->Fetch())
{
$z = 1;
}
if ($z == 1) {
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+164
$rsAnswers = CFormAnswer::GetList( $QUESTION_ID, $by="s_id", $order="desc", $arFilter, $is_filtered );
$z = 0;
while ($arAnswer = $rsAnswers->Fetch())
{
$z = 1;
}
if ($z == 1) {
Когда там накопилось 100500 элементов сайт ВНЕЗАПНО начал лагать...
+80
if (k <= 1)
{
if ((s.equals("2"))||(s.equals("3"))||(s.equals("4")))
{
txtCommonPeople.setText("ЧЕЛОВЕКА");
}
else
{
txtCommonPeople.setText("ЧЕЛОВЕК");
}
}
else
{
if (s.charAt(k-2) != 1)
{
if (((s.charAt(k-1) == 2) || (s.charAt(k-1) == 3) || (s.charAt(k-1) == 4)))
{
txtCommonPeople.setText("ЧЕЛОВЕКА");
}
else
{
txtCommonPeople.setText("ЧЕЛОВЕК");
}
}
else
{
txtCommonPeople.setText("ЧЕЛОВЕК");
}
}
+128
XmlNodeList list = xdoc.GetElementsByTagName("Customer");
for (int i = 0; i < list.Count; i++)
{
XmlElement cl = (XmlElement)xdoc.GetElementsByTagName("Customer")[i];
Написано расовым индусом.
http://www.c-sharpcorner.com/UploadFile/vimalkandasamy/Xml03032009055848AM/Xml.aspx - чисто индусский бложик. Там много подобного.
+154
<?php
$temp='Исходная строка';
$search='Поисковый запрос';
$result=str_ireplace($search, $temp);
if ($result!=$temp)return true;
else
return false;
?>
Вот так я проверял на наличие подстроки в строке! *ROFL*
+146
public class HelloWorld {
public static void main(String[] args) {
HelloWorld hw = new HelloWorld();;;;;;;;;;;;;;;;;;;;;;;;;
hw.doHw();
}
public void doHw()
{
System.out.println("Hello, world");
}
}
Не совсем понимаю что это, но javac HelloWorld.java не выдал никаких ошибок. Возможно кто-то про это писал но все же..
+139
int x = 0;
for (i = 4; i <= 31; i++ && x++)
if (code.l & (1 << i))
{
if (x == 0)
{
info.bios_info->characteristics = (char**) malloc (sizeof (char*));
info.bios_info->characteristics[x] = characteristics[i-3];
}else
{
realloc (info.bios_info->characteristics, (sizeof(char*) * x));
info.bios_info->characteristics[x] = characteristics[i - 3];
}
}
realloc и массив указателей типа char*
http://www.linux.org.ru/forum/development/6786393
+151
void f_ai(intrusive_ptr<serial> i);
//...
static serial ai;
serial* ii=&ai;
//...
f_ai(ii);
Компилируется, а потом грохается. С++ такой Си...
+102
const n = 50;
type vec = array [1..n*4] of system.word;
function vprod(const a, b: vec): Cardinal;
var i: longInt;
begin
result := 0;
for i := 1 to high(vec) do inc(result, a[i] * b[i]);
end;
function vprod_asm1(const a, b: vec): Cardinal; assembler;
asm
push ebx
push ecx
push edx
push esi
push edi
xor ebx, ebx
mov ecx, n*4
mov esi, a
mov edi, b
xor eax, eax
cld
@@l:
mov ax, word ptr [esi]
lea esi, [esi+2]
mul word ptr [edi]
lea edi, [edi+2]
shl edx, 16
mov dx, ax
add ebx, edx
dec ecx
jne @@l
mov eax, ebx
pop edi
pop esi
pop edx
pop ecx
pop ebx
end;
function vprod_asm2(const a, b: vec): Cardinal; assembler;
asm
push ebx
push ecx
push edx
push esi
push edi
xor ebx, ebx
mov ecx, n*4
mov esi, a
mov edi, b
xor eax, eax
cld
@@l:
lodsw
movzx edx, WORD PTR [edi]
imul edx
lea edi, [edi+2]
add ebx, eax
loop @@l
mov eax, ebx
pop edi
pop esi
pop edx
pop ecx
pop ebx
end;
function vprod_mmx (const a, b: vec): Cardinal; assembler;
var muls: record l, h: Cardinal end;
asm
push ebx
push ecx
push esi
push edi
mov ecx, n
mov esi, a
mov edi, b
xor eax, eax
lea ebx, muls
@@l:
db $0F,$6F,$06 // movq mm0, [esi]
db $0F,$F5,$07 // pmaddwd mm0, [edi]
lea esi, [esi+8]
db $0F,$7F,$03 // movq [ebx], mm0
lea edi, [edi+8]
add eax, [ebx]
add eax, [ebx+4]
loop @@l
db $0F,$77 // emms
pop edi
pop esi
pop ecx
pop ebx
end;
По просьбам трудящихся публикую модифицированную версию примера MMXTEST.PAS из комплекта компилятора TMT Pascal. Программа находит скалярное произведение двух векторов. Далее должен быть основной блок с фрагментами типа for i := 1 to 100000 do vprod(a, b); , которые я не стал публиковать ввиду ограничений. Функция vprod_asm1 — почти оригинальный код TMT, функция vprod_asm2 — мой оптимизированный вариант. Результаты запуска на двух машинах (таймер получал по RDTSC):
AMD K6-2-333 МГц, FSB 66 МГц.
Delphi7:
Pascal = 0.550 sec.
Asm x86 (original) = 1.034 sec.
Asm x86 (optimized) = 0.490 sec.
Asm MMX = 0.130 sec.
С директивой $O- первый результат 0.853 sec.
Замена loop на dec ecx + jne увеличивает результаты на 0,015 c.
FPC:
Pascal = 1.387 sec.
Asm x86 (original) = 1.199 sec.
Asm x86 (optimized) = 0.510 sec.
Asm MMX = 0.124 sec.
TMT:
Pascal = 0.914 sec.
Asm x86 (original) = 1.037 sec.
Asm x86 (optimized) = 0.494 sec.
Asm MMX = 0.126 sec.
VP:
Pascal = 0.520 sec.
Asm x86 (original) = 1.033 sec.
Asm x86 (optimized) = 0.493 sec.
Asm MMX = 0.146 sec.
С директивами $Q+,R+ первый результат 1.032 sec.
С директивой $Speed- первый результат 0.731 sec.
------------------------------
Celeron 1,86 ГГц, FSB 533 МГц.
Delphi7:
Pascal = 0.025 sec.
Asm x86 (original) = 0.091 sec.
Asm x86 (optimized) = 0.082 sec.
Asm MMX = 0.044 sec.
TMT:
Pascal = 0.109 sec.
Asm x86 (original) = 0.087 sec.
Asm x86 (optimized) = 0.079 sec.
Asm MMX = 0.042 sec.
+147
var i = new Array(new Array());
i[0][0] = 'num';
alert(i);
матрица в js
+165
temp = new LIST;
temp = ptr->next;
ptr->next = ptr;
ptr = temp;
Так меняют указатели местами при сортировке списка.