- 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
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
#include "hello.h"
__static_data<System_Reflection_RuntimeModule> GModuleC__runtimemodule_hello_ehpqe23j_dll = { (Byte*) -1, (Byte*) -1, { { { (Void**) &System_Reflection_RuntimeModule_vtable_impl } }, 0 , &GModuleC__runtimeassembly_hello_ehpqe23j_dll.data, { 0 }, { 0 }, { 0 }, { 0 } }};
__static_data<System_Reflection_RuntimeAssembly> GModuleC__runtimeassembly_hello_ehpqe23j_dll = { (Byte*) -1, (Byte*) -1, { { { (Void**) &System_Reflection_RuntimeAssembly_vtable_impl } }, 0 , 0 , { 0 } }};
Int32 GModuleC__cctor_called_hello_ehpqe23j_dll = -1;
static __static_str<6> _s15063797403154689540_ = { (Byte*) -1, (Byte*) -1, (Void**) &System_String_vtable_impl, 5, L"pituh" };
static __static_str<2> _s1054744840757602046_ = { (Byte*) -1, (Byte*) -1, (Void**) &System_String_vtable_impl, 0, L"\0" };
__static_data<System_RuntimeType> pituh__runtimetype_hello_ehpqe23j_dll = { (Byte*) -1, (Byte*) -1, { { { { { (Void**) &System_RuntimeType_vtable_impl } } } }, 0 , { 0 }, { 0 }, 0, (System_Type*) &System_Object__runtimetype.data, 0 , ((System_String*) ((Byte**) &_s15063797403154689540_ + 2)), ((System_String*) ((Byte**) &_s1054744840757602046_ + 2)), 18, 0, 0, 0, 0, &GModuleC__runtimemodule_hello_ehpqe23j_dll.data }};
Int32 pituh__cctor_called_hello_ehpqe23j_dll = -1;
Void Void_pituh__ctorFN_hello_ehpqe23j_dll(pituh* __this) {
__check_this((Void*)__this);
Void_System_Object__ctorFN((System_Object*) (__this));
return ;
}
static __static_str<8> _s18790481933210356248_ = { (Byte*) -1, (Byte*) -1, (Void**) &System_String_vtable_impl, 7, L"Kokoko!" };
Int32 Int32_pituh_MainFSystem_StringAYN_hello_ehpqe23j_dll(System_StringAY* args) {
Void_System_Console_WriteLineFSystem_StringN(((System_String*) ((Byte**) &_s18790481933210356248_ + 2)));
return 0;
}
pituh* pituh_pituh__newFN_hello_ehpqe23j_dll() {
Int32 local0;
Int32 _dup20;
Int32 _dup22;
Void* _dup42;
Void* _dup51;
Void* _dup56;
Int32 _dup75;
pituh* _dup104;
_dup20 = ((sizeof(pituh) + sizeof(System_Object*)) + sizeof(System_Object*));
;
local0 = _dup20;
a22:
_dup22 = _dup20;
;
if ((UInt32)_dup22 >= (UInt32)102400) goto a37;
Void* _phi30;
Void* __expr30;
__expr30 = GC_MALLOC_ATOMIC(_dup22);
_phi30 = __expr30;
goto a42;
a37:
Void* __expr37;
__expr37 = GC_MALLOC_ATOMIC_IGNORE_OFF_PAGE(_dup22);
_phi30 = __expr37;
a42:
_dup42 = _phi30;
;
if (_dup42) goto a51;
System_OutOfMemoryException* _new45;
_new45 = System_OutOfMemoryException_System_OutOfMemoryException__newFN();
Void_System_OutOfMemoryException__ctorFN(_new45);
throw (Void*) _new45;
a51:
_dup51 = _dup42;
;
Memset((Byte*) ((Byte*) (_dup51)), 0, (local0));
_dup56 = _dup51;
;
*((Int32*) (Int32*) (_dup56)) = -1;
_dup75 = (Int32) (((Byte*) (_dup56) + sizeof(pituh*)));
;
*((Int32*) (Int32*) (_dup75)) = -1;
_dup104 = (pituh*) ((Void*) ((_dup75 + sizeof(pituh*))));
;
Void_pituh__initFN_hello_ehpqe23j_dll(_dup104);
return _dup104;
}
Void Void_pituh__initFN_hello_ehpqe23j_dll(pituh* __this) {
__check_this((Void*)__this);
((System_Object*) (__this))->__vtbl = (Void**) &pituh_vtable_implhello_ehpqe23j_dll;
return ;
}
Int32 Int32_pituh__getsizeFN_hello_ehpqe23j_dll(pituh* __this) {
__check_this((Void*)__this);
return (Int32) (sizeof(pituh));
}
System_Type* System_Type_pituh__gettypeFN_hello_ehpqe23j_dll(pituh* __this) {
__check_this((Void*)__this);
return (System_Type*) ((System_Type*) &pituh__runtimetype_hello_ehpqe23j_dll.data);
}
Void* VoidP_pituh__dynifaceFSystem_TypeN_hello_ehpqe23j_dll(pituh* __this, System_Type* _type) {
__check_this((Void*)__this);
return 0/*null*/;
}
Int32 Int32_pituh_get_static__cctor_calledFN_hello_ehpqe23j_dll() {
return pituh__cctor_called_hello_ehpqe23j_dll;
}
Int32* Int32P_pituh_get_static_addr__cctor_calledFN_hello_ehpqe23j_dll() {
return &pituh__cctor_called_hello_ehpqe23j_dll;
}
Void Void_pituh_set_static__cctor_calledFInt32N_hello_ehpqe23j_dll(Int32 _value) {
pituh__cctor_called_hello_ehpqe23j_dll = _value;
return ;
}
// Дальше копипастить нет смысла
В эту простыню превращается простенькая программа на C# после прогона через IL2C:
inkanus-gray 11.02.2017 00:53 # 0
Метки: #C#, #дотнетговно.
dm_fomenok 11.02.2017 01:55 # +3
Метки: #C#, #IL2Cговно.
guest 11.02.2017 01:17 # 0
barop 11.02.2017 02:37 # 0
guest 11.02.2017 12:18 # +5
guest 11.02.2017 13:29 # −2
dm_fomenok 11.02.2017 01:57 # +2
> > csnative.codeplex.com
> > Compiling C#/MSIL to Native Code using C.
WTF? Исключения в Си?
barop 11.02.2017 02:35 # +1
SEH
guest0 11.02.2017 12:20 # +2
Antervis 11.02.2017 06:46 # 0
bormand 11.02.2017 07:02 # +2
Darkling 12.02.2017 15:57 # 0
cykablyad 13.02.2017 03:32 # 0
Darkling 13.02.2017 03:52 # −1
Darkling 13.02.2017 03:56 # 0
Так сойдёт?
bormand 13.02.2017 06:13 # 0
Darkling 13.02.2017 07:10 # 0
Пример кода?
bormand 13.02.2017 16:50 # +1
Darkling 13.02.2017 16:56 # −2
Она возвращает ОДНО слово. И это уже моя проблема создать буффер нужной длинны, что-бы ОДНО слово не вылетело за его пределы. Вопросы?
roman-kashitsyn 13.02.2017 17:01 # +2
А чего на неё смотреть? Ты по сути написал очередной убогий gets из стандартной библиотеки.
> моя проблема создать бухффер нужной длинны
Царь всегда знает, какого размера данные приходят на вход его программе, да? Твоя функция — мечта любого какира.
Darkling 13.02.2017 17:08 # 0
> мечта любого какира
Моя программа нужна более, чем полностью никому, кроме меня. У вас, случайно, паранойя не наблюдается?
roman-kashitsyn 13.02.2017 17:49 # +1
Наверняка считывание очередного слова было критическим местом в этой проге. Гораздо критичнее чтения с диска/сети.
> явно шустрее стандартных читалочек.
Результаты бенчмарков, разумеется, имеются?
> нужна более, чем полностью никому, кроме меня
Ок, пусть оно так и остаётся.
Darkling 13.02.2017 18:19 # 0
Работа с массивом данных размером 2 * 10 ^ 9 (не шибко большой, но солидный). При полностью неизменном основном коде сокращение времени отработки с ~200 мс до ~6 мс. Потому да, критично.
На третье:
Я тебя тоже люблю, пупсик. ♥
Antervis 13.02.2017 18:57 # +2
bormand 13.02.2017 19:00 # 0
Да хотя бы из кеша...
Может быть 6мс на одно слово или на какую-то группу слов?
bormand 13.02.2017 18:58 # 0
Darkling 13.02.2017 21:03 # 0
Я заебался с вами, ребят.
roman-kashitsyn 13.02.2017 22:18 # +2
Иди вконтактик, там наивные девочки будут верить твоим сказкам.
bormand 13.02.2017 22:30 # +1
Ну а чё, всего 600 SSD по 500MB/s... По меркам гугла - мелочи :3
defecate-plusplus 13.02.2017 22:42 # +1
вот, например
https://www-ssl.intel.com/content/www/us/en/solid-state-drives/solid-state-drives-dc-p3608-series.html
вам разве такие на новый год не раздают за то, что хорошо себя вели?
bormand 13.02.2017 22:49 # +2
Ну ок, 60 таких няшек и пара-тройка десятков машин с 30GB/s шиной действительно справятся с этим сраным двухгиговым файлом со сраными словами за 6мс. Если получится разбить парсинг на куски и ось лагов не напихает...
defecate-plusplus 13.02.2017 23:06 # +5
кла-стер
вон пропускная способность самого крутого проца на сегодняшний момент sparc m7 составляет 160 ГБ/с (не спрашивай, пришлось погуглить)
очевидно, фрагмент кода выше массивно-параллельный, он легко масштабируется вширь (об этом свидетельствует инжекция using namespace std; которая включает именно этот вендор-анлокед режим), поэтому организовав каскад из этих процессоров, использовав некоторые из них в качестве двойного турбонаддува всей системы, легко получить искомые 300+ГБ/с скорости обработки сраных слов
guest 13.02.2017 23:14 # 0
bormand 14.02.2017 06:19 # +6
Ааа, так вот почему он написан в одну строку и его приходится скроллить по горизонтали.
Darkling 13.02.2017 22:30 # −1
roman-kashitsyn 14.02.2017 13:16 # +5
Проверил, опять врёшь. Иди лучше @dm_fomenok помоги.
cykablyad 13.02.2017 10:49 # +1
GC в крестах, охуеть
guestinho 13.02.2017 11:27 # +2
Darkling 13.02.2017 11:47 # 0
Antervis 13.02.2017 19:24 # +1
http://www.urbandictionary.com/define.php?term=The%20D
inkanus-gray 14.02.2017 00:37 # +1
http://www.urbandictionary.com/define.php?term=The+C%27s
Darkling 13.02.2017 11:46 # 0
cykablyad 13.02.2017 20:26 # +3
Darkling 13.02.2017 21:04 # 0
Darkling 13.02.2017 12:14 # 0
Psionic 13.02.2017 11:47 # +1
guestinho 13.02.2017 11:55 # 0
Darkling 13.02.2017 12:41 # 0
Psionic 13.02.2017 12:43 # 0
guest 07.03.2017 11:41 # 0
брать от сюдава https://github.com/ASDAlexander77/cs2cpp
guest 07.03.2017 11:43 # 0