Под «крылом» Apple(a) есть акие вещи как CUPS и Clang. И ничего страшного, как были опнсорс так и остались. Да они тролли известные и жадные, но то что уже открыто вроде не закрывают.
Отрыв хоть и небольшой, но сохраняется постоянно. У них там есть какая-то магия с numpy — вроде всё что использует его может ускорится.
Ну а в целом всё-равно нужно прибегать к дополнительной магии: если добавить еще один файл который подскажет cython`у где какие типы переменных, то отрыв сразу увеличится, а модуль при этом всё-равно можно будет импортировать как скомпилированный, так и не скомпилированный,
Например в файл v2d.pxd добавим такое:
cimport cython
cdef class v2d(object):
cdef public float __x, __y
И так можно дальше улучшать, например как в предыдущем комментарии взять функции из math.h и использовать их. Еще можно взять и переопределить функции:
cimport cython
cdef class v2d(object):
cdef public float __x, __y
cpdef float get_length(self)
В данном случае это прироста в скорости не дало, может быть даже замедлило
Еще можно обойтись и без создания pxd и писать прямо в .py файле сохраняя совместимость (см v2d_pure.py)
В данном случае вс' стало даже медленнее.
Реальные ускорения можно получить если поступать так:
Делать большинство методов чисто сишнымии во внтутренних рассчётах использовать из, а наружу выставлять уже функции питона
Мне этот «Pure» режим что-то выглядит стрёмно — pxd файл как-то попроще.
*.pxd: +simpler, -harder to sync
@cython.decorators: -huge, +always up to date
Ну а вообще если хочется из него выжать всёи получить прирост в скорости десятки и сотни раз, то надо использовать сишные функции как в комментарии выше, писать сразу pyx файл, а не разбивать на py and pxd. В чем еще преимущество cython, так это в том, что на выходе можно получить библиотеку v2d.so и использовать её хоть прямиком из Си, так-что те кто си не любит может всё-равно выдавать для него либы
Вот только жаль что размітие влияет и на обычные «картинки». Вот если сравнить изображения вещей на сайде и в игре, то видно, что в игре они размыты, похоже что «мылится» весь экран в не зависимости от того модель это или битмап. Неприятно как-то.
Стоило бы еще упоминуть про cython: для арифметики он нормально заменяет ctypes и при этом более дружелюбный для тех кто не знает или не любит C. Кроме того он еще и более менее нормальные классы понятные для питона позволяет писать.
немного найденого кода из pygame PaintBrush
cimport cython
import operator
import math
cdef extern from "math.h":
double sqrt(double x)
double atan2(double y, double x)
double cos(double x)
double sin(double x)
double floor(double x)
cdef class v2d(object):
cdef public double x, y
def __init__(self, x, y=None):
if x is not None and y is not None:
self.x = float(x)
self.y = float(y)
elif type(x) == v2d:
self.x = x.x
self.y = x.y
elif type(x) == list or type(x) == tuple:
self.x = x[0]
self.y = x[1]
else:
raise TypeError()
# Position
def get_pos(self):
return (self.x, self.y)
def set_pos(self,pos):
self.x = float(pos.x)
self.y = float(pos.y)
pos = property(get_pos, set_pos)
def get_int_pos(self):
cdef int x, y
x = int(floor(self.x))
y = int(floor(self.y))
return(x,y)
ipos = property(get_int_pos, set_pos)
# ...
А в некоторых случаях можно вообще писать чистый питон код и он его «ускорит».
На таких скоростях уже можно сражаться обычными пулями — неплохо будут разносить всё в пылть при полёте навстречу друг-другу. Однако если продетели мимо, то уже не встретитесь. А если оба движутся с такой скоростью, но при этом относительно друг-друга с малой, то это всё будет влиять лишь на «статику» вокруг
А вот если взять какой-нибудь алгоритм который понижает цветность картинки с уётом какого-нибудь качественного дизеринга, а потом взять результирующую палитру? Я конечно понимаю, что останется проблема подбора количества цветов, но резулььтат должен получиться удовлетворительный?
SKA это массив радиоприёмников, и не факт что суперпозиция считается сразу — вполне возможно что пишут данные с каждого элемента отдельно, а уже потом обрабатывают.
Вы еще вспомните, что там было 700 вопросов. Вот на месте присяжных вы бы рассматривали каждый вопрос? Я думаю они бы там решили по этим 7 патентам, а потом ставили просто: эти 85 вопросов за эпл, эти 15 за самсунг
Если интересно то могу то могу показать поделиться «цветными» инидкаторами — можно настроить какое значение будет зелёным, какое красным, цвет плавно меняется между значениями. Кроме того индикатор загрузки памяти ( с вычетом всяких кешей и прочего). Индикатор загрузки Процессора от 0 до 100% (с учётом количества ядер, а то странно видеть 200-400%).
Ну и индикатор раскладки с помощью kbdd
Тесты это по сути тоже исходный код и тоже под какой-то лицензией. Вполне возможно что в файлах тестов не упоминалась лицензия, но как правило лицензию пихают в начало каждого дажее бесполезного файла. Лично код mysql не смотрел, так-что не знаю
(R*30 + G*59 + B*11)/100
А лучше вынесли бы в отдельную функцию:
Вот файлы для проверки:
gist.github.com/4030438
Отрыв хоть и небольшой, но сохраняется постоянно. У них там есть какая-то магия с numpy — вроде всё что использует его может ускорится.
Ну а в целом всё-равно нужно прибегать к дополнительной магии: если добавить еще один файл который подскажет cython`у где какие типы переменных, то отрыв сразу увеличится, а модуль при этом всё-равно можно будет импортировать как скомпилированный, так и не скомпилированный,
Например в файл v2d.pxd добавим такое:
и запустим заново:
И так можно дальше улучшать, например как в предыдущем комментарии взять функции из math.h и использовать их. Еще можно взять и переопределить функции:
В данном случае это прироста в скорости не дало, может быть даже замедлило
Еще можно обойтись и без создания pxd и писать прямо в .py файле сохраняя совместимость (см v2d_pure.py)
В данном случае вс' стало даже медленнее.
Реальные ускорения можно получить если поступать так:
Делать большинство методов чисто сишнымии во внтутренних рассчётах использовать из, а наружу выставлять уже функции питона
pyfile:
Мне этот «Pure» режим что-то выглядит стрёмно — pxd файл как-то попроще.
*.pxd: +simpler, -harder to sync
@cython.decorators: -huge, +always up to date
Ну а вообще если хочется из него выжать всёи получить прирост в скорости десятки и сотни раз, то надо использовать сишные функции как в комментарии выше, писать сразу pyx файл, а не разбивать на py and pxd. В чем еще преимущество cython, так это в том, что на выходе можно получить библиотеку v2d.so и использовать её хоть прямиком из Си, так-что те кто си не любит может всё-равно выдавать для него либы
немного найденого кода из pygame PaintBrush
А в некоторых случаях можно вообще писать чистый питон код и он его «ускорит».
Ну и индикатор раскладки с помощью kbdd