Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Http Client benchmark #388

Open
wants to merge 32 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
c28c43b
http2 stream manager canary
TingDaoK Aug 25, 2022
c0b4ce4
add an error handling to make sure no request failed in the middle
TingDaoK Aug 25, 2022
0247e69
add direct connection test
TingDaoK Aug 25, 2022
06ab9a8
add todo
TingDaoK Aug 26, 2022
def775f
nginx test
TingDaoK Aug 26, 2022
9197dc6
try to get it running from CI
TingDaoK Sep 12, 2022
4cd7338
maybe we will have canary as elasticurl in the future
TingDaoK Sep 12, 2022
f445de0
fix build
TingDaoK Sep 12, 2022
37696e2
increase timeout
TingDaoK Sep 12, 2022
f86a9f7
print out output
TingDaoK Sep 12, 2022
ca0c7c5
give me a nicer printout
TingDaoK Sep 12, 2022
53d8d43
unused arg
TingDaoK Sep 12, 2022
6f2c30a
not updating the window so frequently
TingDaoK Sep 12, 2022
2199444
my computers dead, disable it for now
TingDaoK Sep 12, 2022
2a23d4f
try to fix it
TingDaoK Sep 12, 2022
a34e410
why it's committed
TingDaoK Sep 13, 2022
8e9ffd5
update window when larger
TingDaoK Sep 13, 2022
fc4769c
format
TingDaoK Sep 13, 2022
2f0dcf4
check the number is not slower than expected
TingDaoK Sep 13, 2022
c6a1676
result mem
TingDaoK Sep 13, 2022
e4c01fe
add documentation and same thing for stream
TingDaoK Sep 13, 2022
db1a728
fix tests
TingDaoK Sep 13, 2022
9c89ade
30 secs instead
TingDaoK Sep 14, 2022
918c9ce
copy/paste fix
TingDaoK Sep 19, 2022
e4be79e
Merge branch 'main' into canary
TingDaoK Sep 19, 2022
d523095
Merge branch 'main' into canary
TingDaoK Sep 26, 2022
c72d9b0
get rid of the linux only thing
TingDaoK Sep 26, 2022
9ed287c
Merge branch 'main' into canary
TingDaoK Nov 2, 2022
19bfb86
Merge branch 'main' into canary
TingDaoK Dec 13, 2022
74c7b06
update the port
TingDaoK Dec 13, 2022
28ff84d
Merge branch 'main' into canary
TingDaoK Mar 22, 2023
56e84e3
Merge branch 'main' into canary
TingDaoK Apr 24, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 30 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,6 @@ jobs:
chmod a+x builder
./builder build -p ${{ env.PACKAGE_NAME }}


localhost-test-linux:
runs-on: ubuntu-20.04 # latest
steps:
Expand Down Expand Up @@ -179,3 +178,33 @@ jobs:
run: |
python -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')"
python builder.pyz build -p aws-c-http --cmake-extra=-DENABLE_LOCALHOST_INTEGRATION_TESTS=ON

localhost-canary-linux:
runs-on: ubuntu-20.04 # latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Build and test
run: |
python3 -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')"
python3 builder.pyz build -p aws-c-http --cmake-extra=-DAWS_BUILD_CANARY=ON

localhost-canary-mac:
runs-on: macos-11 # latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Build and test
run: |
python3 -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')"
python3 builder.pyz build -p aws-c-http --cmake-extra=-DAWS_BUILD_CANARY=ON

localhost-canary-win:
runs-on: windows-2022 # latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Build and test
run: |
python -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')"
python builder.pyz build -p aws-c-http --cmake-extra=-DAWS_BUILD_CANARY=ON
4 changes: 4 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ endif()

option(ENABLE_PROXY_INTEGRATION_TESTS "Whether to run the proxy integration tests that rely on pre-configured proxy" OFF)
option(ENABLE_LOCALHOST_INTEGRATION_TESTS "Whether to run the integration tests that rely on pre-configured localhost" OFF)
option(AWS_BUILD_CANARY "Whether to build the canary for benchmark the performance of our http client" OFF)

if (DEFINED CMAKE_PREFIX_PATH)
file(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH)
Expand Down Expand Up @@ -101,5 +102,8 @@ if (NOT BYO_CRYPTO AND BUILD_TESTING)
add_subdirectory(tests)
if (NOT CMAKE_CROSSCOMPILING)
add_subdirectory(bin/elasticurl)
if (AWS_BUILD_CANARY)
add_subdirectory(bin/canary)
endif()
endif()
endif()
28 changes: 28 additions & 0 deletions bin/canary/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
project(canary C)

list(APPEND CMAKE_MODULE_PATH "${CMAKE_INSTALL_PREFIX}/lib/cmake")

file(GLOB CANARY_SRC
"*.c"
)

set(PROJECT_NAME canary)
add_executable(${PROJECT_NAME} ${CANARY_SRC})
aws_set_common_properties(${PROJECT_NAME})

target_include_directories(${PROJECT_NAME} PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>)

target_link_libraries(${PROJECT_NAME} aws-c-http)

if (BUILD_SHARED_LIBS AND NOT WIN32)
message(INFO " canary will be built with shared libs, but you may need to set LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib to run the application")
endif()

install(TARGETS ${PROJECT_NAME}
EXPORT ${PROJECT_NAME}-targets
COMPONENT Runtime
RUNTIME
DESTINATION bin
COMPONENT Runtime)
Loading