본문 바로가기
Performance

GraphicMagicK vs Node Sharp

by 장쿨이 2020. 4. 12.

시나리오

  • 각 모듈마다 이미지 1건 이미지 크기 변환 처리.
  • 각 10회 실시.각 모듈마다 이미지 10건 동시에 크기 변환 처리.
  • 각 10회 실시.이미지 크기는 550x550, 500x500 크기로 두번 변환 처리.
  • 각 모듈은 JAVA ProcessBuilder를 이용하여 모두 독립 Process로 실행.
  • GraphicsMagick ./configure 컴파일 설치.
  • nodejs yum 저장소에서 설치.

 

프레임워크 이미지 모듈명

Spring Boot2

GraphicsMagick 1.3.33

Node Sharp 0.23.4

 

1. 테스트 서버 사양 및 구성

CPU

CPU CORE

RAM

OS

jdk

Intel(R) Xeon(R) CPU ES-2650 v3 @ 2.30Ghz

4코어

8GM

Cent OS 7

openjdk 1.8.0_232

 

2. GraphicsMagick 성능

 

프레임워크 이미지 모듈명

Spring Boot2

GraphicsMagick 1.3.33

 

2.1 이미지 1건씩 처리.

이미지 크기(pixel) 1차(ms) 2차(ms) 3차(ms) 4차(ms) 5차(ms) 6차(ms) 7차(ms) 8차(ms) 9차(ms) 10차(ms)

550

1044

926

974

766

944

716

716

1013

1014

643

500

1040

1062

1012

887

1044

944

944

1027

1015

838

2.1.1 이미지 1건씩 처리 할 경우 CPU, DISK

 

 

2.2 이미지 10건씩 동시 처리.

이미지 크기(pixel)

1차(ms)

2차(ms)

3차(ms)

4차(ms)

5차(ms)

6차(ms)

7차(ms)

8차(ms)

9차(ms)

10차(ms)

평균 처리 시간

550

1236

855

1017

1208

1367

1287

1169

865

1063

 

1118.556

500

1349

1237

1265

1271

1318

1364

1273

1301

1272

 

1294.444

550

1348

1315

1422

1426

1339

1336

1247

1370

1335

 

1348.667

500

1379

1327

1419

1460

1395

1387

1335

1442

1313

 

1384.111

550

1032

873

642

871

1077

900

977

1072

830

 

919.3333

500

935

904

1014

919

1239

963

993

918

1016

 

989

550

973

979

893

1090

1217

1139

1027

1113

1098

 

1058.778

500

1194

1001

934

1124

1261

1192

1043

1150

1183

 

1120.222

550

855

925

942

846

765

849

785

1290

777

 

892.6667

500

884

739

857

946

1079

900

909

1102

1226

 

960.2222

550

887

938

855

847

1085

890

976

909

990

 

930.7778

500

1107

937

946

960

1319

1022

991

1088

1168

 

1059.778

550

968

806

945

824

930

834

718

920

1027

 

885.7778

500

988

931

951

850

750

915

783

950

1153

 

919

550

1005

904

1029

857

1071

848

933

946

1148

 

971.2222

500

901

846

1008

920

962

886

946

1016

848

 

925.8889

550

765

804

933

968

852

993

852

649

976

 

865.7778

500

963

812

645

858

868

859

917

704

1107

 

859.2222

550

1212

874

855

854

762

846

896

838

996

 

903.6667

500

670

898

772

774

725

798

828

892

1072

 

825.4444

평균 처리 시간

1011.628

2.2.1 이미지 10건씩 동시 처리 할 경우 CPU, DISK I/O 처리

 

 

3. Nodejs+sharp성능

프레임워크 이미지 모듈명

Spring Boot2

nodejs v10.17.0, sharp 0.23.4

 

3.1 이미지 1건씩 처리.

이미지 크기(pixel)

1차(ms)

2차(ms)

3차(ms)

4차(ms)

5차(ms)

6차(ms)

7차(ms)

8차(ms)

9차(ms)

10차(ms)

550

537

607

625

591

660

589

645

601

601

618

500

724

629

691

648

657

646

661

674

645

669

3.2 CPU, DISK I/O 처리

 

3.2 이미지 10건씩 동시 처리.

이미지 크기(pixel) 1차(ms) 2차(ms) 3차(ms) 4차(ms) 5차(ms) 6차(ms) 7차(ms) 8차(ms) 9차(ms) 10차(ms) 평균 처리 시간(ms)

550

890

605

668

648

738

625

373

733

697

632

660.9

500

1144

770

608

779

740

600

552

745

702

633

727.3

550

1042

748

711

727

531

678

678

740

682

653

719

500

1097

765

707

740

536

733

713

751

792

766

760

550

458

523

463

365

413

475

487

481

399

374

443.8

500

448

471

489

425

729

477

421

440

436

498

483.4

550

441

424

449

395

703

429

436

617

428

469

479.1

500

440

442

403

595

715

392

531

649

482

432

508.1

550

442

580

405

595

651

430

449

441

422

433

484.8

500

407

511

494

530

445

457

387

588

393

398

461

550

431

520

474

553

438

370

440

552

385

421

458.4

500

524

559

576

426

417

495

357

408

426

404

459.2

550

375

594

495

551

517

480

444

384

629

471

494

500

435

652

375

470

505

485

492

658

732

447

525.1

550

532

555

524

406

756

527

463

658

711

434

556.6

500

422

594

589

471

634

530

457

615

545

494

535.1

550

403

471

470

359

682

410

425

481

438

353

449.2

500

380

462

454

386

451

403

349

411

498

411

420.5

550

345

551

587

377

344

415

536

392

548

395

449

500

511

563

450

358

429

440

427

614

406

457

465.5

평균 처리 시간

527

3.2.1 이미지 10건씩 동시 처리 할 경우

 

. 결론

  • Linux에서 GraphicsMagick에 비하여 nodejs+sharp 모듈이 자원 활용도가 더 좋으며 속도도 2배가까이 빠르다.
    이미지 크기변환에 사용할 모듈은 nodejs+sharp로 확정.
    각 처리 환경에 따라 결과 값이 다를 수 있으므로 해당 지표는 참고만 하시고 직접 비교하기를 권장 함.

댓글