有哪些问题是经常遇到,又让人恨得咬牙切齿的呢?从之前同学们吐槽的话题里,我精选了8个高频问题,今天一起来看一下。注意!前方高能,准备好降压药~ 问题1:“不就是一个数吗,为啥要这么久?” 应该多转发一些大数据/数据仓库/数据治理/数据分析的书单、技能树一类,让他们直观体验下“卧槽,这个东西这么复杂呀!” 问题2:“我们的数据可大了,都在那里了,你为啥分析不出来?” 问题5:“你做的这个,我早知道了,有没有深入的分析?” 这个问题和上一个问题是同胞姐妹。都是业务合作态度差导致的。你都不告诉我你知道了啥,我咋知道你有么有知道呢? 当然,最理想的状态是:预测会有问题,经过业务努力没有问题,然后业务表扬数据分析及时发现了问题,数据分析表扬业务行动有效制止了问题,相互吹捧它不香吗,何必相互伤害。 把矛头引到“你为啥比不上别人”,引到“业务该怎么做”上,这样不但能避免甩锅,还能脚踏实地地解决问题。 问题8:“你怎么证明,你做的分析和公司业绩提升有关系!” 这个问题一般在考核绩效的时候才冒出来。
8锁问题 场景一 标准情况访问:两个同步方法,一个对象调用 import java.util.concurrent.TimeUnit; /** * 标准情况下 是先sendEmail() 还是先callPhone : 只要被static 修饰的锁的就是整个class模板 * 这里一个锁的是class模板 一个锁的是调用者 * 所以锁的是两个对象 互不影响 */ public class LockDemo8 { public static void main(String[] args) throws InterruptedException { Phone8 phoneA = new Phone8(); Phone8 phoneB = new Phone8(); new Thread(()->{ try { new Thread(()->{ phoneB.callPhone(); },"B").start(); } } class Phone8{
1、问题现象及分析 环境说明 环境说明: centos7.3 Kubernetes1.14 docker 1.18.9 异常信息:kubectl get pod发现服务被驱逐,然后在调度到其它节点过程中出现问题 查看/var/log/messages中日志,发现大量镜像无法被拉取的错误,如下所示: 镜像被删除问题 Nov 7 06:20:49 k8work2 kubelet: E1107 06:20:49.829886 出现这个问题,很容易理解,内网集群,在集群安装过程中,镜像是通过复制过来的,但是执行docker images|grep k8s发现k8s的镜像全不在了,难道有人为删除,要不然镜像为什么会无缘无故消失呢 3、总结 通过本文可以看出两点: 当k8s集群出现问题时一定要仔细查看日志,先看k8s本身事件信息,如果不能找到线索,紧接着查看内核日志,出现问题之后,正常情况下一定能够找到问题日志。 推荐 压测nginx出现no live upstreams while connecting to upstream的问题分析 并非每个容器内部都能包含一个操作系统
这篇文章中介绍下如何使用 JDK 自带工具来分析和定位 Java 程序的问题。 使用 JDK 自带工具查看 JVM 情况 JDK 自带了很多命令行甚至是图形界面工具,帮助我们查看 JVM 的一些信息。 比如,在我的机器上运行 ls 命令,可以看到 JDK 8 提供了非常多的工具或程序: 图片 接下来,我会与你介绍些常用的监控工具。 Java 8、Linux/Unix 平台 jstat 工具的完整介绍,你可以查看这里。jstat 定时输出的特性,可以方便我们持续观察程序的各项指标。 抓取后可以使用类似fastthread(https://fastthread.io/)这样的在线分析工具来分析线程栈。 我们明明配置线程栈最大 256KB 啊,为什么会出现 4GB 这么夸张的数字呢,到底哪里出了问题呢?
1、问题 通过 ffmpeg 对pal8格式的 png 图片进行缩放时,原始图像的透明通道丢失了,被替换为黑色底。 原始图像: ffmpeg 命令: ffmpeg -i 0_1.png -filter_complex "scale=w=100:h=100" -y o.png 结果: 2、问题定位分析 首选看下 ffmpeg 通过对 scale 滤镜分析,发现虽然其底层调用的是 swscale,为什么又要对 AV_PIX_FMT_PAL8 做这么多特殊逻辑呢?是不是 swscale 对 PAL8 有什么特殊限制呢? 可以简单的类比为 swscale 支持 AV_PIX_FMT_PAL8 的解码,但是不支持 AV_PIX_FMT_PAL8 的编码。 现在整个问题的原因基本就清晰了。 +--------------+ +---------+ */ 3、问题解决 既然根本原因是 ffmpeg swscale 不支持 AV_PIX_FMT_PAL8
运行结果: unicode字符串:用户 6 转成GBK会乱码:鐢ㄦ埛 数据没有丢失:用户 好像没有问题,这就是一个误区。 为什么奇数个汉字GBK会出错 直接对比两种字符集和奇偶字数的情形 重新封装一下前面的逻辑,写一段代码来分析: public static void demo(String str) throws Exception === 为什么GBK会出错 前三段都没问题,最后一段,奇数个汉字的utf-8字节流转成GBK字符串,再转回来,前面一切正常,最后一个字节,变成了 "0x3f",即"?" 我们使用"用户名" 三个字来分析,它的UTF-8 的字节流为: [e7 94 a8] [e6 88 b7] [e5 90 8d] 我们按照三个字节一组分组,他被用户A当做一个整体交给用户B。 为什么 ISO-8859-1 没问题 因为 ISO-8859-1 是单字节编码,因此它的分组方案是: [e7] [94] [a8] [e6] [88] [b7] [e5] [90] [8d] 因此中间不做任何操作
spring源码分析8 强烈推介IDEA2020.2破解激活,IntelliJ
问题 在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,如何求解? 2. 解题过程 该问题使用回溯法,其本质上是一种枚举法。 代码 package com.jfp; /** * @author jiafupeng * @desc 8皇后 * @create 2021/3/17 14:54 * @update 2021 /3/17 14:54 **/ public class Queen8 { static final int MAX_NUM = 8; int chessBoard[][] = new } } public static void main(String[] args) throws InterruptedException { Queen8 queen8 = new Queen8(); queen8.settleQueen(0); queen8.printChessBoard(); } } 4.
普通抽奖问题问题描述 用户随机抽奖,数据如下: // map中,key代表用户名,value代表成用户下单数 var users map[string]int64 = map[string]int64 { "a": 10, "b": 6, "c": 3, "d": 12, "f": 1, } 思路 随机问题,一般就是通过随机函数从某个范围内随机取出某个数值,则该数值对应的就是中奖用户 在这里,如果我们能给map中每个元素设置对应的索引,即转化为数组,是不是就可以解决问题了呢? : 数据结构和上面抽奖问题一致,只是这里,要求中奖概率和用户的订单数成正比 思路 ==本质==还是随机函数获得一个数值,数值对应的用户即获奖用户;这里要实现订单数对获奖概率的影响问题,即==订单数对应随机数的某个范围 ,往往都有数学模型去对应,比如抽奖问题,就可以转化为初中所学习的数轴知识,画个草图,简单易理解,也不需要多高深的数学知识 问题本身并不难,重要的是转换思路,将抽象问题简化为具体的数学问题,然后去解决
ping 问题分析 ping 是什么 ping 是常用的网络管理命令,ping也属于一个通信协议,是TCP/IP协议的一部分,适用于windows和linux以及unix。 Ping不通ARP问题故障分析 通过前面的Ping不通故障定位思路可以判断出是否是由于ARP问题引起Ping不通。 Ping不通VLAN问题故障分析 通过前面的Ping不通故障定位思路可以判断出是否是由于VLAN问题引起Ping不通。 Ping不通路由问题故障分析 通过前面的Ping不通故障定位思路可以判断出是否是由于路由问题引起Ping不通。 常见访问控制判断方法如下: 在接口下进行抓包,分析获取报文的信息,然后查看相应的配置。
一、字符编码问题举例 1、支付宝代扣签约失败问题。 问题描述:用户在浏览器中输入中文请求,表单post给后台为中文乱码,导致通用代扣签约失败。 2、微博红包提现失败问题。 6、UNICODE:随着计算机的普及,编码也众多,需要统一,一个叫 ISO (国际标谁化组织)的国际组织决定着手解决这个问题。 六、常见问题分析 下面看一下,当我们碰到一些乱码时,应该怎么分析这些问题? 出现乱码问题的原因都是在转换中编码和解码的字符集不一致导致的,由于往往一次操作涉及到多次编解码,所以出现乱码时很难查找到底是哪个环节出现了问题,下面就几种常见的现象进行分析。
TCP问题分析 网络的五层协议 物理层 数据链路层 网络层,IP协议,ICMP协议(ping) 传输层,传输层有两个协议,面向连接的TCP和无连接的UDP,TCP是点对点的可靠连接,保证数据顺序必达 %来自前一个估计,而10%则取自新的测量 RTO(Retransmission TimeOut),这个是重传超时时间,也就是下重传消息需要等待Ack的时间,超过这个时间就再次发起下一次重传 TCP抓包分析 tcpdump chmod 777 /system/bin/tcpdump 到此为止,tcpdump就成功安装到了/system/bin/目录下,接着用如下命令还是抓包 Java中的Socket异常分析 通常采用域名去连接的时候,域名会先通过dns解析成ip最终去用ip连接,但是在dns解析ip的时候没有解析出ip或者解析失败就会报这个异常,dns是采用udp协议,在Android设备上会连续连续尝试8次 连接,A端的socket的read的时候返回-1,那这条socket就不再有可读取的数据,造成这个-1的原因是B端的TCP发起了一个FIN,可能是调用了socket的close方法 tcpdump抓包分析
/9367352/ libsurfaceflinger.so: http://gerrit.scm.adc.com:8080/#/c/9367154/4/libc/Android.bp HWSan分析方法 fatal,sf,system server等系统关键进程的NE都是fatal的,所以只需要关注fatal的就行了,可以打开db_history搜索进程关键字来找到对应的db文件 db文件一般提供给MTK分析 ,他们通过监控系统SWT重启,发现是因为sf造成的卡死,题中的log只有他们的SWT回传,没有nwatchcall回传,所以需要联系测试去eap系统下载才行 2.分析问题 sf卡死一般分为以下几种 log,看堆栈是否挂在gpu库里 3).系统运行缓慢,io,cpu,loading过重导致sf运行缓慢,这种情况sf连续两个时间点的堆栈不一样,这时候要看log上有没有lmk或者lowmem字样,分析是否是系统问题 4.如果上面确定是sf卡死造成的,则 adb pull /data/persist_log/DCS/de/psw_multimedia_perf 把nwatchcall抓到的现场堆栈和log导出来继续分析
ping 问题分析 ping 是什么 ping 是常用的网络管理命令,ping也属于一个通信协议,是TCP/IP协议的一部分,适用于windows和linux以及unix。 Ping不通ARP问题故障分析 通过前面的Ping不通故障定位思路可以判断出是否是由于ARP问题引起Ping不通。 Ping不通VLAN问题故障分析 通过前面的Ping不通故障定位思路可以判断出是否是由于VLAN问题引起Ping不通。 Ping不通路由问题故障分析 通过前面的Ping不通故障定位思路可以判断出是否是由于路由问题引起Ping不通。 常见访问控制判断方法如下:在接口下进行抓包,分析获取报文的信息,然后查看相应的配置。
小编最近遇到GC不断增长的问题。 推荐一款分析GC日志的工具 0x01:GC问题 GCViewer是一款分析GC日志的开源工具,非常容易使用,官网如下: https://github.com/chewiebug/GCViewer 下图列出了支持的 具体一些图标上的线条,及说明也非常简单;如果熟悉JVM的GC原理就非常容易看出这些线条到底有没有问题。最简单的一条,只要看到堆的占比只增不减,大概率是有内存泄露问题。 0x02:OOM问题 JVM故障分析及性能优化系列之一:使用jstack定位线程堆栈信息 JVM故障分析及性能优化系列之二:jstack生成的Thread Dump日志结构解析 JVM故障分析及性能优化系列之三 对应OOM问题以上这个网友写的这几篇文章非常不错,可以参考。
单样本输入数据输入数据是降维聚类分群注释的数据做拟时序分析通常不是拿全部的细胞,而是拿感兴趣的一部分。用subset提取子集即可。因为要使用差异基因来排序,所以要两类及以上细胞。 例如下面选择NK和CD8 T细胞;如果只做一类细,就需要二次分群(后面介绍)rm(list = ls())library(Seurat)library(monocle)library(dplyr)load #加载单样本数据scRNA = scescRNA$celltype = Idents(scRNA) #新增细胞类型一列scRNA = subset(scRNA,idents = c("NK","CD8 /day7/scRNA.Rdata") #加载单样本数据scRNA$celltype = Idents(scRNA)scRNA = subset(scRNA,idents = c("CD8+ T-cells reducedModelFormulaStr = " ~ orig.ident", cores = 8)
接着我们分析下命令行工具,这里除了导入导出工具还有gizmo语法支持、graphql支持等相关命令行工具。 gogen.go里定义了如何生成Gizmo的文档。
简介 上一节4-3~8 code-splitting,懒加载,预拉取,预加载 讲到如何对代码进行 code splitting。 那么如何判断我们的代码要进行code splitting 或者对 code splitting 后的效果进行分析呢?这就需要用到一些辅助的打包分析工具。 2. 准备工作 为了进行代码分析,我们先准备一些用来打包的模块。 // index.js import { log } from '. image.png 同时会在项目下生成一个分析文件: ? image.png 会有如下分析结果: ? image.png open 和 home ,一个是弹出打开弹窗,重新选择 stats,一个就是当前所示的主页信息。
框架分析(8)-React Native 主要对目前市面上常见的框架进行分析和总结,希望有兴趣的小伙伴们可以看一下,会持续更新的。希望各位可以监督我,我们一起学习进步。 社区支持 React Native拥有一个活跃的开发者社区,开发人员可以在社区中获取支持、解决问题和分享经验。这使得学习和使用React Native变得更加容易。 限制和挑战 性能问题 尽管React Native具有原生性能,但在处理复杂的动画和图形方面可能会出现性能问题。在这些情况下,可能需要使用原生代码来实现更高效的解决方案。 这可能导致在使用这些库时遇到一些问题,需要额外的努力来解决。 然而,开发人员还应该注意它的一些限制,并在必要时考虑使用原生代码来解决性能问题。
发表问题-持久层 导入question及相关数据表(共3张表),通过代码生成器项目生成基础代码文件。 ”、“是否具有访问这些数据的权限”……本次需要实现的“发表问题”功能暂时没有需要检查的项。 ; questionDTO.setTagIds(new Integer[] { 5, 8, 13 }); questionDTO.setTeacherIds 10个问题! 另行设计计划任务,因为更新“热点问题”缓存的间隔时间应该与“标签”、“老师”的不同,更新缓存的频率应该更高(间隔时间更短)。