2010-04-04 6 views
0

원격 스크립트를 실행하는 응용 프로그램을 만들고 싶습니다. 사용자는 스크립트 (probablely Lua 스크립트)를 생성 한 다음 서버에 저장할 수 있습니다. 그런 다음 스크립트를 실행하기 위해 API를 사용할 수 있습니다. 나는 API가 웹 서비스 일 수 있다고 생각했다. 그래서 내 질문은 :원격 루아 스크립트 실행

스크립트를 실행하려면 고성능이 필요합니다. 그래서 제 첫 번째 선택은 루아 스크립트입니다. 누군가 다른 감정이 있습니까?

왜냐하면 나는 webservice가 최선의 해결책이라고 생각했기 때문에 높은 성능이 필요합니다. 어쩌면 사용자 요청을 보관하는 TCP/IP Windows 서비스를 만들 수 있습니다. 많은 사용자가 동시에 스크립트를 실행하게 될 것입니다. 그래서 동시성 문제가 생길 것입니다.

내 스크립트는 데이터베이스에서 쿼리합니다. 나는 도쿄 내각 또는 도쿄 폭군을 사용할 것입니다. 나는 Tokio Tyrant가 내가 많은 요청을 할 수있는 유일한 해결책이라고 생각한다. 성능을 위해 연결 풀링을해야합니까? 어쨌든 webservices 요청간에 변수를 공유 할 수 있습니까?

webservice 또는 Windows 서비스를 만들기 위해 C++을 사용하려고 생각했습니다.

누군가이 질문에 도움을 줄 수 있습니까?

+4

성능에 대해 걱정하지 마십시오. 성능에 대해 전혀 걱정하지 마십시오! 작동하게 만들다. 어쩌면 언젠가는 서비스가 글로벌 톱 10으로 성장할 때 빠르게 할애해야 할 것입니다. 그때까지 잘 자. –

답변

3

나는 당신이 보안 문제를 통해 생각했습니다 희망 ...

을 사용자는 스크립트를 만들 수 있습니다 [내 응용 프로그램이 실행됩니다]!

제안 :

  1. 루아 아마 충분히 빠른 충분하다. 표준 라이브러리를 잠그면 후회할 것입니다. 조언을 원하면 루아 메일 링리스트 —을보고이 문제는 많은 다른 사람들에 의해 해결되었습니다.

  2. 변경 가능한 데이터가 공유되어있는 경우에만 동시성 문제가 있습니다. 문제를 해결하려면 해당 데이터를 동시성을 관리하는 데이터베이스에 저장하십시오.

  3. 성능에 문제가 있다는 증거는 없습니다. 함께 살 수있는 데이터베이스를 선택하고, 가능한 가장 간단한 작업을 수행하고, 처리량을 측정하십시오. 그것이 충분히 빠르지 않다면, 개선하고, 헹구고, 반복하십시오.

  4. Lua를 사용한다면 C++보다 C와 인터페이스하는 것이 다소 쉽다는 것을 알게 될 것입니다.

  5. 조기 최적화는 모든 악의 뿌리입니다. 성능에 대해 걱정하지 마시고 가능한 가장 간단한 일을하십시오.

+4

포인트 # 5, "가능한 가장 간단하게 작동 할 수있는 작업"이 # 1이어야합니다! –