Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bytedance/tailor
https://github.com/bytedance/tailor
Last synced: 1 day ago
JSON representation
- Host: GitHub
- URL: https://github.com/bytedance/tailor
- Owner: bytedance
- License: other
- Created: 2020-12-01T13:10:16.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-01-16T11:39:09.000Z (11 months ago)
- Last Synced: 2024-11-29T14:35:02.858Z (13 days ago)
- Language: C
- Size: 2.44 MB
- Stars: 729
- Watchers: 19
- Forks: 92
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-android - **tailor** - Tailor是西瓜Android团队开发的一款通用内存快照裁剪压缩工具,通过它可以在异常时直接dump出一个迷你内存快照。快照中没 有任何敏感信息,更重要的是文件非常小的同时数据也相对完整,非常适合离线分析OOM及其他类型异常的调查定位。 (Android性能优化)
- awesome-apm - 字节-tailor -> Hprof内存快照裁剪压缩
- awesome-apm - 字节-tailor -> Hprof内存快照裁剪压缩
README
# Tailor
[简体中文版说明 >>>](/README_cn.md)
[![GitHub license](https://img.shields.io/badge/license-Apache--2.0-brightgreen.svg)](https://github.com/bytedance/tailor/blob/master/LICENSE)
[![Platform](https://img.shields.io/badge/Platform-Android-brightgreen.svg)](https://developer.android.com)
[![API](https://img.shields.io/badge/api-14%2B-green)](https://developer.android.com/about/dashboards)Tailor is a general-purpose hprof cropping and compression tool developed by Xigua video android
team. Through it, a mini hprof file can be dump directly during exception handling. There is no
sensitive information in the file。More importantly, the file is small but the data is relatively
complete, which is very suitable for offline analysis of oom and other exceptions## Apps using Tailor
## Get started
Step 1: Add the JitPack repository to your build file
```gradle
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
```Step 2: Add the dependency
```gradle
dependencies {
implementation 'com.github.bytedance:tailor:1.1.6'
}
```Step 3: Add code for simple usage
```Java
if (e instanceof java.lang.OutOfMemoryError) {
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "mini.hprof";
try {
Tailor.dumpHprofData(path, true);
} catch (IOException ex) {
ex.printStackTrace();
}
}
``````Java
// Crop and compress the existing hprof files directly
Tailor.cropHprofData(source, target, true);
```Step 4: Upload data
```shell
## !!! App needs to implement upload logic by itself
```Step 5: Process data (Python version >= 3.5)
```shell
## Data recovery
python3 library/src/main/python/decode.py -i mini.hprof -o target.hprof
``````shell
## Hprof verify
python3 library/src/main/python/verify.py -i source.hprof
``````shell
## Crop and compress
python3 library/src/main/python/encode.py -i source.hprof -o mini.hprof
```## Extra
1. [Android Camera内存问题剖析](https://mp.weixin.qq.com/s/-oaN-bOqHDjN30UP1FMpgA)
2. [西瓜视频稳定性治理体系建设一:Tailor 原理及实践](https://mp.weixin.qq.com/s/DWOQ9MSTkKSCBFQjPswPIQ)
3. [西瓜视频稳定性治理体系建设二:Raphael 原理及实践](https://mp.weixin.qq.com/s/RF3m9_v5bYTYbwY-d1RloQ)## Support
1. Communicate on [GitHub issues](https://github.com/bytedance/tailor/issues)
2. Mail: [email protected]
3. WeChat: 429013449
4. QQ Group## License
~~~
Copyright (c) 2020 ByteDance IncLicensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
~~~