mirror of
https://github.com/pocoproject/poco.git
synced 2024-12-12 18:20:26 +01:00
rename BenchmarkApp -> Benchmark
This commit is contained in:
parent
cf8db80310
commit
3efcb444e0
8
JSON/samples/Benchmark/CMakeLists.txt
Normal file
8
JSON/samples/Benchmark/CMakeLists.txt
Normal file
@ -0,0 +1,8 @@
|
||||
set(SAMPLE_NAME "Benchmark")
|
||||
|
||||
set(LOCAL_SRCS "")
|
||||
aux_source_directory(src LOCAL_SRCS)
|
||||
|
||||
add_executable( ${SAMPLE_NAME} ${LOCAL_SRCS} )
|
||||
#set_target_properties( ${SAMPLE_NAME} PROPERTIES COMPILE_FLAGS ${RELEASE_CXX_FLAGS} )
|
||||
target_link_libraries( ${SAMPLE_NAME} PocoJSON PocoFoundation )
|
17
JSON/samples/Benchmark/Makefile
Normal file
17
JSON/samples/Benchmark/Makefile
Normal file
@ -0,0 +1,17 @@
|
||||
#
|
||||
# Makefile
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Makefile for Poco JSON Benchmark
|
||||
#
|
||||
|
||||
include $(POCO_BASE)/build/rules/global
|
||||
|
||||
objects = Benchmark
|
||||
|
||||
target = Benchmark
|
||||
target_version = 1
|
||||
target_libs = PocoJSON PocoFoundation
|
||||
|
||||
include $(POCO_BASE)/build/rules/exec
|
88
JSON/samples/Benchmark/input
Normal file
88
JSON/samples/Benchmark/input
Normal file
@ -0,0 +1,88 @@
|
||||
{"web-app": {
|
||||
"servlet": [
|
||||
{
|
||||
"servlet-name": "cofaxCDS",
|
||||
"servlet-class": "org.cofax.cds.CDSServlet",
|
||||
"init-param": {
|
||||
"configGlossary:installationAt": "Philadelphia, PA",
|
||||
"configGlossary:adminEmail": "ksm@pobox.com",
|
||||
"configGlossary:poweredBy": "Cofax",
|
||||
"configGlossary:poweredByIcon": "/images/cofax.gif",
|
||||
"configGlossary:staticPath": "/content/static",
|
||||
"templateProcessorClass": "org.cofax.WysiwygTemplate",
|
||||
"templateLoaderClass": "org.cofax.FilesTemplateLoader",
|
||||
"templatePath": "templates",
|
||||
"templateOverridePath": "",
|
||||
"defaultListTemplate": "listTemplate.htm",
|
||||
"defaultFileTemplate": "articleTemplate.htm",
|
||||
"useJSP": false,
|
||||
"jspListTemplate": "listTemplate.jsp",
|
||||
"jspFileTemplate": "articleTemplate.jsp",
|
||||
"cachePackageTagsTrack": 200,
|
||||
"cachePackageTagsStore": 200,
|
||||
"cachePackageTagsRefresh": 60,
|
||||
"cacheTemplatesTrack": 100,
|
||||
"cacheTemplatesStore": 50,
|
||||
"cacheTemplatesRefresh": 15,
|
||||
"cachePagesTrack": 200,
|
||||
"cachePagesStore": 100,
|
||||
"cachePagesRefresh": 10,
|
||||
"cachePagesDirtyRead": 10,
|
||||
"searchEngineListTemplate": "forSearchEnginesList.htm",
|
||||
"searchEngineFileTemplate": "forSearchEngines.htm",
|
||||
"searchEngineRobotsDb": "WEB-INF/robots.db",
|
||||
"useDataStore": true,
|
||||
"dataStoreClass": "org.cofax.SqlDataStore",
|
||||
"redirectionClass": "org.cofax.SqlRedirection",
|
||||
"dataStoreName": "cofax",
|
||||
"dataStoreDriver": "com.microsoft.jdbc.sqlserver.SQLServerDriver",
|
||||
"dataStoreUrl": "jdbc:microsoft:sqlserver://LOCALHOST:1433;DatabaseName=goon",
|
||||
"dataStoreUser": "sa",
|
||||
"dataStorePassword": "dataStoreTestQuery",
|
||||
"dataStoreTestQuery": "SET NOCOUNT ON;select test='test';",
|
||||
"dataStoreLogFile": "/usr/local/tomcat/logs/datastore.log",
|
||||
"dataStoreInitConns": 10,
|
||||
"dataStoreMaxConns": 100,
|
||||
"dataStoreConnUsageLimit": 100,
|
||||
"dataStoreLogLevel": "debug",
|
||||
"maxUrlLength": 500}},
|
||||
{
|
||||
"servlet-name": "cofaxEmail",
|
||||
"servlet-class": "org.cofax.cds.EmailServlet",
|
||||
"init-param": {
|
||||
"mailHost": "mail1",
|
||||
"mailHostOverride": "mail2"}},
|
||||
{
|
||||
"servlet-name": "cofaxAdmin",
|
||||
"servlet-class": "org.cofax.cds.AdminServlet"},
|
||||
|
||||
{
|
||||
"servlet-name": "fileServlet",
|
||||
"servlet-class": "org.cofax.cds.FileServlet"},
|
||||
{
|
||||
"servlet-name": "cofaxTools",
|
||||
"servlet-class": "org.cofax.cms.CofaxToolsServlet",
|
||||
"init-param": {
|
||||
"templatePath": "toolstemplates/",
|
||||
"log": 1,
|
||||
"logLocation": "/usr/local/tomcat/logs/CofaxTools.log",
|
||||
"logMaxSize": "",
|
||||
"dataLog": 1,
|
||||
"dataLogLocation": "/usr/local/tomcat/logs/dataLog.log",
|
||||
"dataLogMaxSize": "",
|
||||
"removePageCache": "/content/admin/remove?cache=pages&id=",
|
||||
"removeTemplateCache": "/content/admin/remove?cache=templates&id=",
|
||||
"fileTransferFolder": "/usr/local/tomcat/webapps/content/fileTransferFolder",
|
||||
"lookInContext": 1,
|
||||
"adminGroupID": 4,
|
||||
"betaServer": true}}],
|
||||
"servlet-mapping": {
|
||||
"cofaxCDS": "/",
|
||||
"cofaxEmail": "/cofaxutil/aemail/*",
|
||||
"cofaxAdmin": "/admin/*",
|
||||
"fileServlet": "/static/*",
|
||||
"cofaxTools": "/tools/*"},
|
||||
|
||||
"taglib": {
|
||||
"taglib-uri": "cofax.tld",
|
||||
"taglib-location": "/WEB-INF/tlds/cofax.tld"}}}
|
111
JSON/samples/Benchmark/src/Benchmark.cpp
Normal file
111
JSON/samples/Benchmark/src/Benchmark.cpp
Normal file
@ -0,0 +1,111 @@
|
||||
//
|
||||
// Benchmark.cpp
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
// This sample shows a benchmark of the JSON parser.
|
||||
//
|
||||
// Copyright (c) 2004-2012, Applied Informatics Software Engineering GmbH.
|
||||
// and Contributors.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person or organization
|
||||
// obtaining a copy of the software and accompanying documentation covered by
|
||||
// this license (the "Software") to use, reproduce, display, distribute,
|
||||
// execute, and transmit the Software, and to prepare derivative works of the
|
||||
// Software, and to permit third-parties to whom the Software is furnished to
|
||||
// do so, all subject to the following:
|
||||
//
|
||||
// The copyright notices in the Software and this entire statement, including
|
||||
// the above license grant, this restriction and the following disclaimer,
|
||||
// must be included in all copies of the Software, in whole or in part, and
|
||||
// all derivative works of the Software, unless such copies or derivative
|
||||
// works are solely in the form of machine-executable object code generated by
|
||||
// a source language processor.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
|
||||
// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
|
||||
// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
// DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
|
||||
#include "Poco/Timestamp.h"
|
||||
#include "Poco/JSON/Parser.h"
|
||||
#include "Poco/JSON/DefaultHandler.h"
|
||||
#include "Poco/JSON/JSONException.h"
|
||||
#include "Poco/Environment.h"
|
||||
#include "Poco/Path.h"
|
||||
#include "Poco/File.h"
|
||||
#include "Poco/FileStream.h"
|
||||
#include "Poco/StreamCopier.h"
|
||||
|
||||
#include <iostream>
|
||||
#include <iomanip>
|
||||
|
||||
void printTimeDiff(const Poco::Timestamp& start, const Poco::Timestamp& end)
|
||||
{
|
||||
Poco::Timestamp::TimeDiff diff = end - start;
|
||||
std::cout << std::setw(25) << std::left << diff;
|
||||
}
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
Poco::JSON::Object::Ptr obj;
|
||||
|
||||
std::string dir = Poco::Environment::get("POCO_BASE") + "/JSON/samples/Benchmark/";
|
||||
Poco::Path filePath(dir, "input");
|
||||
|
||||
std::ostringstream ostr;
|
||||
|
||||
if ( filePath.isFile() )
|
||||
{
|
||||
Poco::File inputFile(filePath);
|
||||
if ( inputFile.exists() )
|
||||
{
|
||||
Poco::FileInputStream fis(filePath.toString());
|
||||
Poco::StreamCopier::copyStream(fis, ostr);
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << filePath.toString() << " doesn't exist!" << std::endl;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
std::cout << std::setw(25) << "POCO JSON";
|
||||
|
||||
std::string jsonStr = ostr.str();
|
||||
|
||||
try
|
||||
{
|
||||
Poco::JSON::DefaultHandler handler;
|
||||
Poco::JSON::Parser parser;
|
||||
parser.setHandler(&handler);
|
||||
Poco::Timestamp time1;
|
||||
parser.parse(jsonStr);
|
||||
Poco::DynamicAny result = handler.result();
|
||||
Poco::Timestamp time2;
|
||||
printTimeDiff(time1, time2);
|
||||
|
||||
if ( result.type() == typeid(Poco::JSON::Object::Ptr) )
|
||||
{
|
||||
obj = result.extract<Poco::JSON::Object::Ptr>();
|
||||
}
|
||||
|
||||
//Serialize to string
|
||||
std::ostringstream out;
|
||||
Poco::Timestamp time3;
|
||||
obj->stringify(out);
|
||||
Poco::Timestamp time4;
|
||||
printTimeDiff(time3, time4);
|
||||
std::cout << std::endl;
|
||||
}
|
||||
catch(Poco::JSON::JSONException jsone)
|
||||
{
|
||||
std::cout << jsone.message() << std::endl;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
1
JSON/samples/CMakeLists.txt
Normal file
1
JSON/samples/CMakeLists.txt
Normal file
@ -0,0 +1 @@
|
||||
add_subdirectory( Benchmark )
|
13
JSON/samples/Makefile
Normal file
13
JSON/samples/Makefile
Normal file
@ -0,0 +1,13 @@
|
||||
#
|
||||
# Makefile
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Makefile for Poco JSON Samples
|
||||
#
|
||||
|
||||
.PHONY: projects
|
||||
clean all: projects
|
||||
projects:
|
||||
$(MAKE) -C Benchmark $(MAKECMDGOALS)
|
||||
|
Loading…
Reference in New Issue
Block a user