• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

uber / tchannel-go
54%
dev: 88%

Build:
Build:
LAST BUILD BRANCH: delayed_frame_alloc
DEFAULT BRANCH: dev
Repo Added 29 Dec 2015 02:57PM UTC
Files 120
Badge
Embed â–¾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH delayed_frame_alloc
branch: SELECT
CHANGE BRANCH
x
  • No branch selected
  • 1.0.5
  • add-caller-forwarding
  • add_listenip_tests
  • add_onclosed
  • add_tracing
  • add_version_local
  • ajs-atom
  • ajs-atomics
  • ajs-benchbug
  • ajs-cache
  • ajs-caller
  • ajs-clamp-introspection
  • ajs-cleanup
  • ajs-conn-prefixes
  • ajs-conns
  • ajs-copy
  • ajs-err-names
  • ajs-evenmoar
  • ajs-expose-routing-delegate
  • ajs-fixme
  • ajs-flake1
  • ajs-fluent
  • ajs-git
  • ajs-install-test
  • ajs-leaks
  • ajs-lint
  • ajs-metrics
  • ajs-metrics2
  • ajs-metrics3
  • ajs-metrics6
  • ajs-moar
  • ajs-relay
  • ajs-stats-race
  • ajs-structy
  • ajs-sync-refs
  • ajs-test-cleanups
  • ajs-tests
  • ajs-timer-pool
  • ajs-timer-wheel
  • ajs-travis
  • ajs-xpr
  • ajs-zones
  • alun/get-force-map
  • alun/peers-len
  • always_set_assignment
  • alxn/580-SetStrategy-should-rescore
  • aniketpant-err-req-cancelled
  • aniketpant-expire-exchange
  • aniketpant-req-cancel
  • apache-thrift-0.10.0
  • apache-thrift-0.9
  • atomic_race
  • avoid_host
  • bench
  • bench_binaries
  • benchmark_logging
  • bump_version
  • byte_slice_params
  • call_id
  • call_logging
  • call_span
  • cancel_connect
  • cancel_ctx
  • ch_active_conn
  • changelog
  • changelog_gen_script
  • cleanup_examples
  • cleanup_logs
  • clone_ctx
  • close_conn
  • close_err
  • close_fix
  • close_states
  • close_test
  • closefix
  • concurrent_relay_connect
  • conn_change
  • conn_err
  • conn_gc
  • conn_options_refactor
  • conn_transition
  • connect_flake
  • connect_timeout
  • connection_process
  • consistent_init_error
  • consistent_score
  • context-with-headers
  • copy_api
  • coverage_introspection
  • coveralls_flaky
  • created_stacktrace
  • crossdock-in-travis
  • delayed_frame_alloc
  • dev
  • dev-fix-moe
  • dial_timeout
  • dial_timeout_test
  • docker-thrift-gen
  • dscp_tos
  • dup_check
  • eats_logger
  • eats_logger_compatible
  • eats_logger_compatible_rebase
  • eats_logger_updated
  • enable_1.7
  • enable_logging
  • ephemeral_py
  • error_handler_func
  • error_log
  • export_remote_peer
  • expose_conn_directly
  • fake_call_frame
  • fix-concurrent-map-writes
  • fix-glide-install
  • fix-peer-ip-tag
  • fix_0_ttl
  • fix_deps
  • fix_error_logger
  • fix_flaky_arg3
  • fix_flaky_introspect
  • fix_flaky_test
  • fix_goroutine_leaks
  • fix_lint
  • flaky_close_test
  • flaky_fragmentation_test
  • flaky_inbound_test
  • flaky_peer_remove_closed
  • flaky_peerscorenewconn
  • flaky_readtimeout
  • flaky_relay
  • flaky_relay_closed_peers
  • flaky_relay_concurrent_test
  • flaky_requeststate
  • flaky_responseclosed
  • flaky_streamcancelled
  • flaky_test
  • flaky_tests
  • flaky_writearg3
  • for-yarpc-peer-lists
  • frame_pool
  • get_args
  • get_handler
  • glide
  • glide_up
  • go-thrift-stream
  • go1.9
  • go17
  • go_tip
  • go_version
  • goroutine_leak_multiexclude
  • handle_empty_frame
  • health
  • hosts_err
  • hyperbahn_log
  • hyperbahn_retry
  • hyperbahn_stub
  • ignore_docker
  • ignore_lint
  • ignore_settimeout
  • imalison
  • imalison2
  • import_ordering
  • improve_logging
  • inbound_accept_multiple
  • include_others
  • increase_timeout
  • increase_tombstones
  • init_res
  • init_res_handling
  • inner_server
  • integrate-opentracing
  • integrate-opentracing-crossdock-tests
  • integrate-opentracing-glide-xdock
  • interceptor
  • interceptor_dev
  • interceptor_master
  • interceptor_original
  • interceptor_thrift
  • interceptor_thrift_wip
  • introspect_num_connections
  • introspect_order
  • introspection_include_version
  • introspection_tchannel
  • invaliddeadline
  • josh_streaming_explore
  • json_err
  • keon-patch-1
  • lazy_frame
  • leak_detector_skip
  • leak_end
  • lint_16
  • listenip_local
  • local_peer
  • lock_peers
  • log_conn_dir
  • log_err
  • log_fail
  • log_fields
  • log_new_channel
  • logfields
  • logger_faster
  • long_test
  • master
  • mex_readerwriter
  • mex_safe
  • misc_introspection_logging
  • mock_peerselection
  • mock_real_forward
  • moreargs_err
  • move_ctx_inside
  • muttley
  • muttley_bench
  • muttley_better_introspection
  • muttley_declined
  • muttley_flaky_close
  • muttley_forwarderr
  • muttley_inbounds
  • muttley_lazy_frame
  • muttley_remove_relaytest
  • muttley_repeat_bench
  • muttley_runcount
  • muttley_testserver
  • nathan/add_dispatcher
  • no_leak_test
  • no_mock
  • no_start_close
  • no_test_deps
  • non-error-code
  • notify-peer-change
  • parse_version_headers
  • partial_read_stream
  • pass-context-to-response-callback
  • peer-status-change-on-close
  • peer_active_conn
  • peer_heap
  • peer_heap_unexport
  • peer_score_calc
  • peer_state
  • peer_test_cleanup
  • peer_test_close
  • pengzhai
  • pin-glide
  • pin-thrift-0.10.0
  • pin-thrift-0.9
  • pre_conn
  • publicize-root-peers
  • pv_benchmark_logging
  • pv_finishes_bug
  • pv_relay_pool
  • pv_timer_wheel
  • pv_version
  • race_add_close
  • race_flaky
  • rand-load-balance
  • rand_conn
  • rank_test
  • rate_limit
  • read_test_failure
  • readarg23
  • reduce_conn_refused
  • refactor_relay_test
  • relax-write-arg3-after-timeout
  • relay_assignment
  • relay_atomic
  • relay_channel_closed
  • relay_close_conn
  • relay_default
  • relay_dest_log
  • relay_enable_test
  • relay_err_alloc
  • relay_handle_call
  • relay_interface
  • relay_log
  • relay_logger
  • relay_method
  • relay_missing_logger
  • relay_no_ctx
  • relay_not_closing
  • relay_outgoing
  • relay_outgoing_nohostport
  • relay_queuefull
  • relay_race_timeout
  • relayer
  • release_1.0.6
  • release_1.0.7
  • release_1.1
  • remote_hp_mismatch
  • remove-tracer-from-registrar
  • remove_atomic
  • remove_outbound
  • remove_peer
  • remove_remote_process_match
  • remove_test_deps
  • remove_unused
  • remove_unused_field
  • remove_verify
  • repeat_bench
  • require-thrift-fields
  • resilient_frame_parsing
  • retry_request_state
  • rk
  • robskillington/always-call-post-response-cb-if-ctx-fn-called
  • root-handler
  • rw-able-interface
  • rw-interface
  • sc_options_on_new
  • schallert/dscp_tos_rebase
  • set-handler
  • set_request_size
  • shard-relay
  • sleep_leak
  • stack_fix
  • state_ignore
  • stats_flake
  • stream
  • stream_stuck
  • stream_test
  • stream_unblock_readers
  • struct_sizes
  • such_lint
  • test_flakes
  • test_frag_slow
  • test_server
  • testserver_client
  • testutils
  • testutils_again
  • testutils_register
  • thrift-v1.0.0-dev
  • thrift_byte
  • thrift_ctx
  • thrift_gen
  • thrift_gen_case
  • thrift_gen_namespace
  • thrift_gen_tests
  • thrift_headers
  • thrift_nilerr
  • thrift_struct
  • timeout_multiplier
  • timeout_no_goroutine
  • tracing_span_order
  • track_channels
  • travis_1.7rc1
  • travis_golint
  • travis_lint
  • travisbranchinenv
  • unblock_on_close
  • unexpected_conn_change
  • unknown_exception
  • unmarshal_text
  • update_changelog
  • use-dialcontext
  • use_package_filename
  • use_root_peers
  • v1.0.0
  • v1.0.1
  • v1.0.2
  • v1.0.3
  • v1.0.4
  • v1.0.5
  • v1.0.6
  • v1.0.6-dev
  • v1.0.7
  • v1.0.8
  • v1.0.8_notes
  • v1.0.9
  • v1.1.0
  • v1.2.0
  • v1.2.0-dev
  • v1.2.1
  • v1.2.2
  • v1.2.3
  • v1.3.0
  • v1.3.0-post
  • v1.3.0-prep
  • v1.4.0
  • v1.5.0
  • v1.6.0
  • v1.6.0-post
  • v1.6.0-pre
  • v1.7.0
  • v_1.0.3
  • validate_pre_connection
  • verified_server
  • version_cut
  • version_lint
  • vet_err
  • without-headers
  • womp
  • wrap_ctx
  • writer_after_connerr
  • xichen-fix-peer-connection-race
  • ysh-context-with-headers

pending completion
3419

push

travis-ci

prashantv
Defer frame allocation in readFrames till we read a header

Currently, we allocate a `*Frame` before we call Read, which may block
for quite a while. With a large number of connections, we end up holding
on to a large amount of memory (64KiB per frame) even if those
connections are idle.

Instead of allocating before the `Read` call, wait till we read a
header, and then allocate a frame.

This will also allow us to allocate a frame based on the size of the
body rather than assuming a worst-case of 64KiB as we do now.

8416 of 15544 relevant lines covered (54.14%)

0.54 hits per line

Relevant lines Covered
Build:
Build:
15544 RELEVANT LINES 8416 COVERED LINES
0.54 HITS PER LINE
Source Files on dev
Detailed source file information is not available for this build.

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
3419 delayed_frame_alloc Defer frame allocation in readFrames till we read a header Currently, we allocate a `*Frame` before we call Read, which may block for quite a while. With a large number of connections, we end up holding on to a large amount of memory (64KiB per f... push 12 Feb 2020 10:04AM UTC prashantv travis-ci pending completion  
3185 apache-thrift-0.10.0 Comment out trace check in crossdock so we can use jaeger 2.0 Pull #609 30 Jun 2019 08:11PM UTC web-flow travis-ci pending completion  
2741 nathan/add_dispatcher add test Pull #533 01 Feb 2019 05:55AM UTC web-flow travis-ci pending completion  
751 master Merge pull request #159 from uber/reserved Ensure reserved bytes are always written as 0 push 29 Nov 2017 03:18PM UTC prashantv travis-ci pending completion  
605 master Fail test if verified server does not close Previously, we waited 10 iterations for the verified server to close, and if it did not, we just ignored it and checked exchanges. Now, we do the following: - 5 iterations of runtime.Gosched - 5 iter... Pull #130 16 Nov 2017 08:41PM UTC prashantv travis-ci pending completion  
3417 relayer Expose relay span setting in relayer push 09 Oct 2017 11:12PM UTC Yu-Xie travis-ci pending completion  
3368 dev Only test go1.7-1.9, lint on latest (#651) Currently, we run tests for go1.5 upwards which takes quite a while on Travis. go1.7 was released over a year ago, so keeping compatibility with it as the oldest is reasonable. As part of this, clea... push 26 Sep 2017 05:42AM UTC web-flow travis-ci pending completion  
3367 dev Control lint from .travis.yml only Pull #651 26 Sep 2017 02:47AM UTC web-flow travis-ci pending completion  
3366 version_lint Control lint from .travis.yml only push 26 Sep 2017 02:42AM UTC prashantv travis-ci pending completion  
3361 dev gofmt -w -s and golint simpliciations Pull #651 26 Sep 2017 01:25AM UTC web-flow travis-ci pending completion  
See All Builds (2285)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc