forked from cwtch.im/server
Testing Performance
This commit is contained in:
parent
cc4d5ee428
commit
dfbcd473b3
|
@ -92,7 +92,7 @@ func (ta *TokenboardServer) Listen() {
|
||||||
// Because we have set the sync capability any new messages that arrive after this point will just
|
// Because we have set the sync capability any new messages that arrive after this point will just
|
||||||
// need to do a basic lookup from the last seen message
|
// need to do a basic lookup from the last seen message
|
||||||
newMessages := ta.LegacyMessageStore.FetchMessagesFrom(lastSignature)
|
newMessages := ta.LegacyMessageStore.FetchMessagesFrom(lastSignature)
|
||||||
for _, message := range newMessages[len(messages):] {
|
for _, message := range newMessages {
|
||||||
data, _ = json.Marshal(groups.Message{MessageType: groups.NewMessageMessage, NewMessage: &groups.NewMessage{EGM: *message}})
|
data, _ = json.Marshal(groups.Message{MessageType: groups.NewMessageMessage, NewMessage: &groups.NewMessage{EGM: *message}})
|
||||||
ta.connection.Send(data)
|
ta.connection.Send(data)
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,17 +34,11 @@ func (s *SqliteMessageStore) Close() {
|
||||||
|
|
||||||
// AddMessage implements the MessageStoreInterface AddMessage for sqlite message store
|
// AddMessage implements the MessageStoreInterface AddMessage for sqlite message store
|
||||||
func (s *SqliteMessageStore) AddMessage(message groups.EncryptedGroupMessage) {
|
func (s *SqliteMessageStore) AddMessage(message groups.EncryptedGroupMessage) {
|
||||||
tx, err := s.database.Begin()
|
|
||||||
if err != nil {
|
|
||||||
log.Errorf("%q", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
stmt, err := s.preparedInsertStatement.Exec(base64.StdEncoding.EncodeToString(message.Signature), base64.StdEncoding.EncodeToString(message.Ciphertext))
|
stmt, err := s.preparedInsertStatement.Exec(base64.StdEncoding.EncodeToString(message.Signature), base64.StdEncoding.EncodeToString(message.Ciphertext))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("%v %q", stmt, err)
|
log.Errorf("%v %q", stmt, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
tx.Commit()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// FetchMessages implements the MessageStoreInterface FetchMessages for sqlite message store
|
// FetchMessages implements the MessageStoreInterface FetchMessages for sqlite message store
|
||||||
|
|
|
@ -6,35 +6,44 @@ import (
|
||||||
"git.openprivacy.ca/openprivacy/log"
|
"git.openprivacy.ca/openprivacy/log"
|
||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestMessageStore(t *testing.T) {
|
func TestMessageStore(t *testing.T) {
|
||||||
os.Remove("../testcwtchmessages.db")
|
filename := "/home/sarah/testcwtchmessages.db"
|
||||||
|
os.Remove(filename)
|
||||||
log.SetLevel(log.LevelDebug)
|
log.SetLevel(log.LevelDebug)
|
||||||
db, err := InitializeSqliteMessageStore("../testcwtchmessages.db")
|
db, err := InitializeSqliteMessageStore(filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Error: %v", err)
|
t.Fatalf("Error: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
numMessages := 100
|
numMessages := 100
|
||||||
|
|
||||||
t.Logf("Populating Database")
|
t.Logf("Generating Data...")
|
||||||
|
var messages []groups.EncryptedGroupMessage
|
||||||
for i := 0; i < numMessages; i++ {
|
for i := 0; i < numMessages; i++ {
|
||||||
buf := make([]byte, 4)
|
buf := make([]byte, 4)
|
||||||
binary.PutUvarint(buf, uint64(i))
|
binary.PutUvarint(buf, uint64(i))
|
||||||
db.AddMessage(groups.EncryptedGroupMessage{
|
messages = append(messages, groups.EncryptedGroupMessage{
|
||||||
Signature: append([]byte("Hello world"), buf...),
|
Signature: append([]byte("Hello world"), buf...),
|
||||||
Ciphertext: []byte("Hello world"),
|
Ciphertext: []byte("Hello world"),
|
||||||
})
|
})
|
||||||
t.Logf("Inserted %v", i)
|
|
||||||
}
|
}
|
||||||
// Wait for inserts to complete..
|
|
||||||
|
|
||||||
messages := db.FetchMessages()
|
t.Logf("Populating Database")
|
||||||
|
start := time.Now()
|
||||||
for _, message := range messages {
|
for _, message := range messages {
|
||||||
t.Logf("Message: %v", message)
|
db.AddMessage(message)
|
||||||
}
|
}
|
||||||
if len(messages) != numMessages {
|
t.Logf("Time to Insert: %v", time.Since(start))
|
||||||
|
|
||||||
|
// Wait for inserts to complete..
|
||||||
|
fetchedMessages := db.FetchMessages()
|
||||||
|
//for _, message := range fetchedMessages {
|
||||||
|
//t.Logf("Message: %v", message)
|
||||||
|
//}
|
||||||
|
if len(fetchedMessages) != numMessages {
|
||||||
t.Fatalf("Incorrect number of messages returned")
|
t.Fatalf("Incorrect number of messages returned")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,11 +54,11 @@ func TestMessageStore(t *testing.T) {
|
||||||
buf := make([]byte, 4)
|
buf := make([]byte, 4)
|
||||||
binary.PutUvarint(buf, uint64(numToFetch))
|
binary.PutUvarint(buf, uint64(numToFetch))
|
||||||
sig := append([]byte("Hello world"), buf...)
|
sig := append([]byte("Hello world"), buf...)
|
||||||
messages = db.FetchMessagesFrom(sig)
|
fetchedMessages = db.FetchMessagesFrom(sig)
|
||||||
for _, message := range messages {
|
//for _, message := range fetchedMessages {
|
||||||
t.Logf("Message: %v", message)
|
// t.Logf("Message: %v", message)
|
||||||
}
|
//}
|
||||||
if len(messages) != numToFetch {
|
if len(fetchedMessages) != numToFetch {
|
||||||
t.Fatalf("Incorrect number of messages returned : %v", len(messages))
|
t.Fatalf("Incorrect number of messages returned : %v", len(messages))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue