Pull to refresh

Comments 47

Учишь Python и одновременно учишь английский, круто.
а я увидел на trentm.com/blog/archives/2009/03/26/unladden-swallow/

что примечательно,
>Currently in use on Youtube (where most of the frontend is Python)

и вообще, это будет эпичная победа
Интересно, сам Гвидо Ван Россум к этому отношение имеет? Он ведь в Гугл вроде работает?
Кто-нибудь интересовался быстродействием IronPython? На сколько он быстрее/медленнее CPython?
Во всяком случае Garbage Collector у них более продвинутый, т.к. используется стандартный НЕТовский.
Интересно, кто кого, в итоге. К CPython(+psyco), IronPython, Jython, PyPy гугловский Unladen Swallow значит добавился. Особо интересно, у кого JIT будет круче, у бенладен Swallow или уPyPy.
UFO just landed and posted this here
Я в шоке от такого подхода. Где родные скобки?
Я полчаса бился с этим, когда первый раз пробовал разбираться =) Копирую пример — работает. Пишу вручную практически то же самое — не работает. Оказалось, пробел в начале строки не поставил.

С Python пока так и не подружился, за то подсел на Monty Python.
Зато количество людей пишущих лапшу из кода без единого отступа уменьшается до 0 человек)
UFO just landed and posted this here
В питоне есть скобки. Вот, пожалста:
def fun(param): # {
    return param

# }
UFO just landed and posted this here
Интересно, кто победит: консерватизм Гвидо, или биг боссы Google? Хотелось бы, чтобы всё же вторые.
Ну наконец-то наколеночный CPython заменят на что-то более продвинутое.

Такими темпами, глядишь, через пяток лет пыхон дорастет наконец до уровня реализаций Common Lisp'ов далеких 80-х, что не может не радовать.
В 80-х ресурсов было мало, приходилось экономить. А сейчас? Гигабайт туда, гигагерц сюда, никакой разницы…

Вот от GIL избавиться — святое дело, а чистое быстродействие не очень-то и нужно. Не системные ж библиотеки и видеокодеки на голом питоне писать.
с гил:
  d['more'] = 'yeah'


без гил:
  try:
    lock.aquire()
    d['more'] = 'yeah'
  finally:
    lock.release()


и в чём же святость?
Какая святость?
GIL мешает питону юзать больше одного процессора и это — зло.
man Stackless Python, на котором сервера EVE Online крутятся :)
stackless, twisted, много их всяких. Хочется в основной ветке было.

P.S. У eve online запланированный ежесуточный даунтайм на час, так что, видимо, и stackless не идеален )
Stackless, twisted и «много их всяких» ничего общего с GIL'ом не имеют.
Кроме стаклеса у них ещё замечательный во всех отношениях MS SQL Server.
Насчет «замечательный» — это вроде как шутка такая, что ли? 6)
и? в стаклессе эта проблема не решена.
Не знаю. Steckless даже не щупал. Но просто факт, что у EVE под Stackless работают десятки серверов в кластере и в этом мире одновременно играют десятки тысяч пользователей online.

Да, у них тоже есть проблемы, но на сегодня это один из самых масштабных MMO-проектов. И работает он на Питоне :)
я знаю ) просто вы так написали, будто стаклесс свободен от gil, я поправил )
На Jita с 1600 пилотов одновременно им этого всё равно не хватает. :)
Многопоточность — это не единственный и в большинстве случаев не лучший способ использовать много ядер.
import processing и будет вам счастье.
Эх, где ж он был, когда я на форках многопоточность реализовывал… )
и передавать после этого только сериализуемые данные… а если так — то почему не запускать сразу два (подставить нужное число) процессов?
А зачем передавать несериализуемые данные? Use Case какой?
тут вопрос не в передаче именно сериализуемых или несериализуемых данных, а в совместном доступе к памяти. а ее pyprocessing не дает
Конечно processing её не даёт. Её даёт mmap.
т.е. я могу получить доступ к такому файлу из любого интерпретатора и скорость будет == скорости доступа к памяти?
мне кажется вы чтото перепутали, почитайте внимательнее по собственной ссылке
The next example demonstrates how to create an anonymous map and exchange data between the parent and child processes:


что вас смущает?
смущает то, что я таким образом получил фактически простой pipe, только + кучу проблем с организацией совместного доступа.

мне надо: из разных процессов дергать методы класса, причем процессы должны быть по-настоящему независимы (сейчас это достигается за счет разделения на отдельные интерпретаторы). mmap — в принципе помогает расшарить доступ к одному объекту — к файлу (в принципе не плохо, но будет ли это быстрее чем пайпы?), и это не такой большой шаг, учитывая что можно создавать виртуальные файлы.
а надо чтото вроде виртуального хранилища питоновских объектов, где можно создавать объекты для совместного доступа (например создать там все классы гуя, и что бы каждый интерпретатор дергал их как хотел, причем как это сделать огранизуя все через сокеты — можно представить, но тогда приедтся каким-то образом сериализовать данные, и + потери в скорости).
Просто так, расшарить класс между интерпретаторами не удастся

p.s. если есть способ, с удовольствием бы его узнал

Если конкретно для гуя GIL не будет мешать, а даже скорее помогать. Если нужно параллельно выполнять много долгих вычислительных задач, то всякие IPC/RPC вам в руки.
а написать для этих целей декоратор что мешает?
А сейчас кризис. И если, грубо говоря, можно обойтись сотней серверов вместо пятисот, то почему бы не сэкономить :)
хм… покончу с РНР, займусь питоном!
Прекрасные слова, отличная новость, даже не верится
Кому интеерсно, то попытки удалить GIL уже предпринимались code.google.com/p/python-safethread/

без GIL придётся делать больше лишних телодвижений в многопоточных приложениях да и embedded программирование усложнится, в Ruby вон удалил)
Sign up to leave a comment.

Articles