Changeset - 08cd02374883
[Not reviewed]
beta
0 1 1
Marcin Kuzminski - 15 years ago 2011-05-13 19:08:37
marcin@python-works.com
Added mem_watch script. Test can also walk on file tree. Fixed some path issues
2 files changed with 43 insertions and 8 deletions:
0 comments (0 inline, 0 general)
rhodecode/tests/mem_watch
Show inline comments
 
new file 100755
 
ps -eo size,pid,user,command --sort -size | awk '{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }'|grep paster
rhodecode/tests/test_crawler.py
Show inline comments
 
@@ -2,13 +2,13 @@
 
"""
 
    rhodecode.tests.test_crawer
 
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 

	
 
    Test for crawling a project for memory usage
 
    
 
    watch -n 1 "ps aux |grep paster"
 
    watch -n1 ./rhodecode/tests/mem_watch
 

	
 
    :created_on: Apr 21, 2010
 
    :author: marcink
 
    :copyright: (C) 2009-2011 Marcin Kuzminski <marcin@python-works.com>
 
    :license: GPLv3, see COPYING for more details.
 
"""
 
@@ -29,14 +29,18 @@
 
import cookielib
 
import urllib
 
import urllib2
 
import vcs
 
import time
 

	
 
from os.path import join as jn
 

	
 

	
 
BASE_URI = 'http://127.0.0.1:5000/%s'
 
PROJECT = 'rhodecode'
 
PROJECT = 'CPython'
 
PROJECT_PATH = jn('/', 'home', 'marcink', 'hg_repos')
 

	
 

	
 
cj = cookielib.FileCookieJar('/tmp/rc_test_cookie.txt')
 
o = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
 
o.addheaders = [
 
                     ('User-agent', 'rhodecode-crawler'),
 
@@ -64,17 +68,17 @@ def test_changelog_walk(pages=100):
 

	
 
    print 'total_time', total_time
 
    print 'average on req', total_time / float(pages)
 

	
 

	
 
def test_changeset_walk():
 
    print jn(PROJECT_PATH, PROJECT)
 
    total_time = 0
 

	
 
    # test against self
 
    repo = vcs.get_repo('../../../rhodecode')
 
    repo = vcs.get_repo(jn(PROJECT_PATH, PROJECT))
 

	
 
    total_time = 0
 
    for i in repo:
 

	
 
        raw_cs = '/'.join((PROJECT, 'changeset', i.raw_id))
 

	
 
        full_uri = (BASE_URI % raw_cs)
 
        s = time.time()
 
@@ -85,12 +89,42 @@ def test_changeset_walk():
 
        print 'visited %s\%s size:%s req:%s ms' % (full_uri, i, size, e)
 

	
 
    print 'total_time', total_time
 
    print 'average on req', total_time / float(len(repo))
 

	
 
def test_files_walk():
 
    pass
 
    print jn(PROJECT_PATH, PROJECT)
 
    total_time = 0
 

	
 
    repo = vcs.get_repo(jn(PROJECT_PATH, PROJECT))
 

	
 
    paths_ = set()
 
    try:
 
        tip = repo.get_changeset('tip')
 
        for topnode, dirs, files in tip.walk('/'):
 
            for f in files:
 
                paths_.add(f.path)
 
            for dir in dirs:
 
                for f in files:
 
                    paths_.add(f.path)
 

	
 
    except vcs.exception.RepositoryError, e:
 
        pass
 

	
 
    for f in paths_:
 
        file_path = '/'.join((PROJECT, 'files', 'tip', f))
 

	
 
        full_uri = (BASE_URI % file_path)
 
        s = time.time()
 
        f = o.open(full_uri)
 
        size = len(f.read())
 
        e = time.time() - s
 
        total_time += e
 
        print 'visited %s size:%s req:%s ms' % (full_uri, size, e)
 

	
 
    print 'total_time', total_time
 
    print 'average on req', total_time / float(len(repo))
 

	
 

	
 

	
 
test_changelog_walk()
 
#test_changelog_walk()
 
#test_changeset_walk()
 
test_files_walk()
0 comments (0 inline, 0 general)