-
+964
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
using System;
using System.Reflection;
using System.Reflection.Emit;
namespace DynUnloop
{ // Суммирование в цикле
class SumLooping
{ public int Summ(int valMax)
{ int result = 0;
for (int i = 0; i <= valMax; i++)
result += i;
return result;
}
}
// Плоское суммирование
class SumFlat
{ interface ISumCode
{ int ComputeSumm(int valMax);
}
void WriteCode(int valMax)
{ AssemblyName assemblyName = new AssemblyName();
assemblyName.Name = "SumFlatAssembly";
AssemblyBuilder assemblyBuilder =
AppDomain.CurrentDomain.DefineDynamicAssembly(
assemblyName, AssemblyBuilderAccess.Run);
ModuleBuilder moduleBuilder =
assemblyBuilder.DefineDynamicModule("SumFlatModule");
TypeBuilder typeBuilder =
moduleBuilder.DefineType("SumFlatClass"
, TypeAttributes.Public);
typeBuilder.AddInterfaceImplementation(typeof(ISumCode));
/// Задаём возвращаемое зачение и параметр
Type[] paramTypes = { typeof(int) };
Type returnType = typeof(int);
MethodBuilder methodBuilder =
typeBuilder.DefineMethod("ComputeSumm"
, MethodAttributes.Public
| MethodAttributes.Virtual
, returnType, paramTypes);
ILGenerator il = methodBuilder.GetILGenerator();
// Генерируем плоский код.
il.Emit(OpCodes.Ldc_I4, 0);
for (int i = 1; i <= valMax; i++)
{ il.Emit(OpCodes.Ldc_I4, i);
il.Emit(OpCodes.Add);
}
il.Emit(OpCodes.Ret);
// Перекрываем метод ComputeSumm и создаём тип SumFlatClass.
MethodInfo methodInfo =
typeof(ISumCode).GetMethod("ComputeSumm");
typeBuilder.DefineMethodOverride(methodBuilder, methodInfo);
typeBuilder.CreateType();
/// Код готов, создаём объект и берем его интерфейс.
code = (ISumCode)assemblyBuilder.CreateInstance("SumFlatClass");
}
public int Summ(int val)
{ if (this.code == null)
WriteCode(val);
return this.code.ComputeSumm(val);
}
ISumCode code;
}
Оригинальный стиль кода и комментарии сохранёны. (с), или как там.
В коде - разворачивание цикла в "плоский" IL код, который, как доказывается должен выигрывать по производительности.
Elvenfighter,
13 Сентября 2011
-
+154
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
$NpjCaps = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЪЫЭЮЯЇЄІ";
$NpjSmall = "абвгдеёжзийклмнопрстуфхцчшщьъыэюяїєі";
$var = str_replace( ".php", "", $var );
$var = trim( strip_tags( $var ) );
$var = preg_replace( "/\s+/ms", "-", $var );
$var = strtr( $var, $NpjCaps, $NpjSmall );
$var = strtr( $var, $NpjLettersFrom, $NpjLettersTo );
$var = strtr( $var, $NpjBiLetters );
Нашел в одном из "хороших" скриптов D
SaNcHeS,
13 Сентября 2011
-
−90
- 1
- 2
def removeDuplicate(store):
return [x for x in store if x not in locals()['_[1]']]
Удаление дубликатов в списке, set(store) религия не позволила сделать:)
morpheuz,
13 Сентября 2011
-
+162
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
<?if($page=='/map.php'){
$name='Карта сайта';
}
if($page=='/search.php'){
$name='Поиск по сайту';
}
if($page=='/photo.php'){
$name='Фото';
}
if($page=='/schoolsafety/prirodchs/cynami/istoria.php'){
$name='История цунами';
}
if($page=='/school/art.php'){
$name='Стенгазеты';
}
if($page=='/school/photo.php' or $page=='/school/photo_upload.php'){
$name='Фотогалерея';
}?>
<h1><?=$name;?></h1>
Tairesh,
13 Сентября 2011
-
−343
- 1
[[[[[[mainDelegate.subController.CellOfTable.subCellsArray objectAtIndex:[[sourceArray objectAtIndex:1] intValue]] objectForKey:@"Cell in subCell"] subviews] objectAtIndex:0] subviews] objectAtIndex:0];
Доголи-коротколи, а до нужной ячейки доберемся ))))
Psionic,
13 Сентября 2011
-
+156
- 1
RewriteCond %{REQUEST_URI} !\.(cssіjsіjpgіgifіpng)$
Творение удаленного сотрудника. Долго не мог понять, почему сервер кидает 500 ошибку.
PrimeBIT,
13 Сентября 2011
-
+168
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
...
echo '<td width="219" height="18" class="lnk" ><a href="?ierh=6&cat=i_octa">'.gettags("str_octa").'</a></td>';
echo '</tr>';
echo '<tr>';
echo '<td width="219" height="18" class="lnk" ><a href="?ierh=6&cat=i_accident">'.gettags("str_sluch").'</a></td>';
echo '</tr>';
echo '<tr>';
echo '<td width="219" height="18" class="lnk" ><a href="?ierh=6&cat=i_travel">'.gettags("str_travel").'</a></td>';
echo '</tr>';
echo '<tr>';
echo '<td width="219" height="18" class="lnk" ><a href="?ierh=6&cat=i_history">'.gettags("str_history").'</a></td>';
echo '</tr>';
echo '<tr>';
echo '<td width="219" height="8" class="lnk"><img src="images/spacer.gif" width="10" height="8" /></td>';
echo '</tr>';
echo '</table>';
echo '</DIV>';
echo '<!--- end of left menu area ---></td></tr>';
break;
// Spravochniki
case 7:
echo '<td width="5" bgcolor="#FFFFFF"><img src="images/spacer.gif" width="5" height="700" /></td>';
echo '<td width="219" valign="top" ><!--- left area --->';
echo '<table width="219" height="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">';
echo '<tr>';
echo '<td width="219" height="89"><!--- left menu area ---> <DIV class="left-menu">';
echo '<table width="219" cellpadding="0" cellspacing="0" class="left-menu" border="0">';
echo '<tr>';
echo '<td width="219" height="27" background="images/LMenuBG.gif" class="txtTitleWhite">'.gettags("spr_notarius").'</td>';
echo '</tr>';
echo '<tr>';
echo '<td width="219" height="3" class="lnk"><img src="images/spacer.gif" width="10" height="3" /></td>';
echo '</tr>';
echo '<tr>';
echo '<td width="219" height="18" class="lnk" ><a href="?ierh=7&cat=s_help">'.gettags("spr_nothelp").'</a></td>';
echo '</tr>';
echo '<tr>';
echo '<td width="219" height="18" class="lnk" ><a href="?ierh=7&cat=s_functions">'.gettags("spr_funct").'</a></td>';
echo '</tr>';
echo '<tr>';
echo '<td width="219" height="18" class="lnk" ><a href="?ierh=7&cat=s_when">'.gettags("spr_notwhen").'</a></td>';
echo '</tr>';
echo '<tr>';
echo '<td width="219" height="27" background="images/LMenuBG.gif" class="txtTitleWhite">'.gettags("spr_zemsl").'</td>';
...
Переделываем сайт одной компании. Пока суд да дело, их "текущий" сайт переехал к нам на хостинг. Из любопытства залез в код.
Лучше бы я этого не делал.
Собственно, ЭТО (и сотни, если не тысячи строк в том же духе) и выводят все странички.
havelock,
12 Сентября 2011
-
+85
- 1
- 2
- 3
- 4
- 5
Да обойдут вас стороной фатал эрроры, и ужас от переписывания говнокода нубов!=)
Пишите так, чтобы программа не требовала дополнительной плашки памяти на 2 гектара!
Желаю успешного развития в этой нелегкой сфере IT!
Мои искренние поздравления с днем программиста!
1_and_0,
12 Сентября 2011
-
+167
- 1
- 2
- 3
- 4
- 5
- 6
- 7
[code=cpp]
#include <iostream.h>
void main(void)
{
cout << Заключайте сообщение в кавычки;
}
[/code]
http://programmersclub.ru/01/
ReallyBugMeNot,
12 Сентября 2011
-
+160
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
$id = $_POST['id'];
//$id = 194;
$temp = $id;
$str = "";
for ( $incr = 0; $incr < 100; $incr++ ) {
$result = $dbs -> query("SELECT * FROM
market_categs
WHERE
categid={$temp} AND
published = 1 AND
status = 1");
if ( mysql_num_rows($result) > 0 ) {
$categ = mysql_fetch_array($result);
$result2 = $dbs -> query("SELECT * FROM
market_categs_trans
WHERE
categid={$categ[categid]}");
$categ_title = mysql_fetch_array( $result2 );
$str2 = "";
$temp2 = $categ[categid];
for ( $incr2 = 0; $incr2 < 100; $incr2++ ) {
$result3 = $dbs -> query("SELECT * FROM
market_categs
WHERE
categid={$temp2} AND
published = 1 AND
status = 1");
if ( mysql_num_rows($result3) > 0 ) {
$categ2 = mysql_fetch_array($result3);
$str2 .= "/".$categ2[url];
$temp2 = $categ2[parent];
}
}
$str2 = substr($str2,1);
$nb2 = substr_count($str2,"/");
$temp_str2 = explode ("/",$str2);
$str2 = "";
$back = "";
for ($i2 = $nb2; $i2 >= 0; $i2--) {
$str2 .="/".$temp_str2[$nb2];
$nb2--;
}
$str .= " / <a href='/".substr($str2,1)."'>".$categ_title[title]."</a>";
$temp = $categ[parent];
}
}
Рекурсия... мать его
cephuo,
12 Сентября 2011