우리는 많은 양의 비동기식 io가 필요한 응용 프로그램에 광범위하게 Twisted를 사용하고 있습니다. 물건들이 cpu로 대신 묶여있는 경우도 있고, 작업을 수행하는 프로세스 풀을 생성하고이를 여러 서버에서 관리하는 시스템도 있습니다. 모두 Twisted에서 완료되었습니다. 훌륭하게 작동합니다. 문제는 새로운 팀원을 신속하게 이끌 기가 어렵다는 것입니다. Twisted에서 비동기 코드를 작성하려면 거의 수직적 인 학습 곡선이 필요합니다. 마치 인간이 자연스럽게 그렇게 생각하지 않는 것처럼 말입니다.Eventlet 또는 gevent 또는 Stackless + Twisted, Pylons, Django 및 SQL Alchemy
아마도 혼합 된 접근 방식을 고려하고 있습니다. 어쩌면 xmlrpc 서버 부분 및 프로세스 관리를 Twisted로 유지하고 적어도 어느 정도는 동기식으로 보이는 코드에서 다른 것을 구현할 수 있습니다. 그렇다면 다시 암묵적으로 명시 적으로 좋아하므로 조금 더 생각해야합니다. 어쨌든 초록집에 - 그 물건들은 얼마나 잘 작동합니까? 그래서 Stackless가 있습니다. Gallentean의 아바타에서 볼 수 있듯이 CCP의 대표적인 EVE Online 게임의 첫 번째 핸드에서 엄청난 성공을 잘 알고 있습니다. Eventlet 또는 gevent는 어떻습니까? 이제는 Eventlet 만 Twisted와 함께 작동합니다. 그러나 gevent는 순수한 파이썬 구현이 아니기 때문에 더 빠르다고 주장하지만 대신에 libevent를 사용합니다. 또한 특이성과 결함이 적다고 주장합니다. gevent 내가 말할 수있는 한 그것은 1 명의 남자에 의해 유지되고있다. 이것은 다소 나쁘게 만들지 만 모든 훌륭한 프로젝트는 이렇게 시작됩니다. 그렇다면 PyPy이 있습니다. 아직 그 글에 대한 내용을 읽지도 않았습니다. 단지이 스레드에서 보았습니다 : Drawbacks of Stackless.
혼란 스러워요. 내가해야할 일이 무엇일까 궁금합니다. 아마도 Eventlet과 같은 소리가 가장 좋은 내기 일지 모르지만 실제로는 충분히 안정적입니까? 누구든지 거기에 대해 경험이 있습니까? Stackless를 대신 사용해야 할 것입니다. Twisted와 마찬가지로 입증 된 기술입니다. 그들은 함께 잘 작동합니다. 하지만 여전히이 일을하기 위해 별도의 Python 버전을 가져야하는 것을 싫어합니다. 해야할 일 ....
이 다소 불쾌한 블로그 항목은 나를 위해 머리에 못을 박았다 : Asynchronous IO for Grownups Twisted가 나에게 자바 발언과 같이되고있는 것은 아닙니다. Java는 일반적으로 당신이 threading mindset하지만 무엇이든간에. 그럼에도 불구하고 그 원숭이 패치 것이 진짜로 그때 와우처럼 작동한다면. 와우!
당신은 MySQL이 OLTP에 좋지 않다는 것을 더 자세히 말할 수 있습니까? –
기사의 나머지 부분과 관련이 없기 때문에 나는 그것을 꺼 냈습니다. 하지만보기가 느리거나 트리거가 느려지고 저장 프로 시저가 생기거나 오히려 원시 쿼리 최적화 프로그램을 사용하거나 쿼리 계획 (업데이트/삭제/삽입에 사용할 수있는 계획 없음)에 대한 정보를 해독하기가 어렵습니다. 모든 외래 키 열에 인덱스가 필요하므로 쓸모없는 인덱스가 너무 많아 심각한 성능 저하를 피하기 위해 외래 키를 구현하지 않아도됩니다. 나는 계속해서 갈 수 있습니다. – Khorkrak
Twisted는 * 가장 잘 알려진 Python 라이브러리 중 하나입니다. 더 모호한 프로젝트로 전환하는 방법은 누구나 "속도를 빠르게"향상시키는 데 어떻게 도움이 될까요? –